class LazyTensor;
/**
- * @class Tensor Class
- * @brief Tensor Class
+ * @class Tensor Class
+ * @brief Tensor is a multidimensional matrix that contain elements of a single
+ * data type and can perform various operations like addition, division,
+ * multiplication, dot product, data averaging, and more.
+ * NNTrainer defines tensor types using different data types and memory formats.
+ * Supported data types and format are specified in the file 'tensor_dim.h'.
+ *
+ * @note The Tensor class utilizes the TensorBase class to support tensors with
+ * various data types. In other words, this tensor class serves as a container
+ * for tensors, and thus the functionality of the tensor should be defined in
+ * each tensor class (FloatTensor, HalfTensor, etc.).
+ *
*/
class Tensor {
public:
/**
* @class TensorBase class
- * @brief TensorBase is an abstract class
+ * @brief TensorBase is an abstract class that provides a base for various
+ * tensor classes with different data types such as FloatTensor to extend and
+ * implement abstract methods.
+ *
+ * @note Basic functions required for tensor memory allocation and data
+ * modification, such as allocate(), getData(), and setValue(), are necessary
+ * when creating subclasses (new tensor class).
+ *
+ * The remaining operations that are used for mathematical operations are not
+ * essential to create a new tensor class but later should be implemented in a
+ * child class in order to utilize its tensor operations fully.
*/
class TensorBase {
public: