File size: 770 Bytes
fb6457c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #pragma once
#include <cstddef>
#include <memory>
#include <stdexcept>
namespace bsh {
class Tensor {
public:
explicit Tensor(size_t rows, size_t cols);
~Tensor();
Tensor(const Tensor&) = default;
Tensor& operator=(const Tensor&) = default;
Tensor(Tensor&&) = default;
Tensor& operator=(Tensor&&) = default;
void fill(float value);
float& at(size_t row, size_t col);
const float& at(size_t row, size_t col) const;
float* data();
const float* data() const;
size_t rows() const;
size_t cols() const;
size_t size() const;
Tensor transpose() const;
void softmax(Tensor& output) const;
private:
size_t rows_;
size_t cols_;
std::unique_ptr<float[]> data_;
};
} // namespace bsh
|