ocean::Tensor
ocean::Tensor
张量 More...
#include <Tensor.hpp>
Public Functions
Name | |
---|---|
Tensor() 空张量 | |
Tensor(const Tensor & m) 拷贝张量 | |
Tensor(PITensor internalTensor) 封装内部张量 | |
~Tensor() 释放张量 | |
Tensor & | operator=(const Tensor & tensor) 张量赋值 |
template <class dataType > | Tensor(const std::vector< dataType > & fromData) 从 vector 构建张量 |
template <class dataType > | Tensor(const dataType * fromData, int length) 从指针地址及长度构建张量 |
Tensor | clone() const 深度拷贝 |
Tensor | reshape(const TensorShape & shape) 重新调整形状并返回调整后的张量 |
Tensor(int dim0, void * data, DataType type =FLOAT, Layout layout =LAYOUT_TZYX) 从数据指针构建一维向量 | |
Tensor(int dim0, int dim1, void * data, DataType type =FLOAT, Layout layout =LAYOUT_TZYX) 从数据指针构建二维矩阵 | |
Tensor(int dim0, int dim1, int dim2, void * data, DataType type =FLOAT, Layout layout =LAYOUT_TZYX) 从数据指针构建三维张量 | |
Tensor(int dim0, int dim1, int dim2, int dim3, void * data, DataType type =FLOAT, Layout layout =LAYOUT_TZYX) 从数据指针构建四维张量 | |
Tensor(const TensorShape & shape, void * data, DataType type =FLOAT, Layout layout =LAYOUT_TZYX) 从数据指针及形状构建张张量 | |
Tensor(int dim0, DataType type =FLOAT, Layout layout =LAYOUT_TZYX) 自动分配构建一维向量 | |
Tensor(int dim0, int dim1, DataType type =FLOAT, Layout layout =LAYOUT_TZYX) 自动分配构建二维矩阵 | |
Tensor(int dim0, int dim1, int dim2, DataType type =FLOAT, Layout layout =LAYOUT_TZYX) 自动分配构建三维张量 | |
Tensor(int dim0, int dim1, int dim2, int dim3, DataType type =FLOAT, Layout layout =LAYOUT_TZYX) 自动分配构建四维张量 | |
Tensor(const TensorShape & shape, DataType type, Layout layout =LAYOUT_TZYX) 自动分配指定形状的张量 | |
void | create_like(const Tensor & like) 创建相似形状张量,不拷贝数据 |
void | fill(VariableValue value) 以指定数值填充张量 |
bool | empty() const 是否为空 |
size_t | total() const 数据元素总数 |
template <typename T > | operator T*() 快速获取数据指针 |
template <typename T > | operator const T *() const 快速获取数据指针 |
void * | getData() const 获取数据指针 |
float & | operator[](int i) 便捷的浮点数据类型访问 |
const float & | operator[](int i) const 便捷的浮点数据类型访问 |
DataType | getType() const 获取数据类型 |
Layout | getLayout() const 获取数据布局 |
size_t | getElemSize() const 获取元素字节大小 |
const TensorShape & | getShape() const 获取张量形状 |
PITensor | getTensor() const 获取内部模块指针 |
Protected Attributes
Name | |
---|---|
PITensor | tensor 内部张量实现指针 |
Detailed Description
class ocean::Tensor;
张量
张量是一个存储载体,包括数据类型,数据布局,单元素字节大小,张量形状及数据等;
- 提供了大量的内存分配及数据引用张量的构建方法;
- 提供了 create_like, fill, empty, total, 方括号引用的操作的支持接口;
Public Functions Documentation
function Tensor
Tensor()
空张量
function Tensor
Tensor(
const Tensor & m
)
拷贝张量
Parameters:
- m 待拷贝张量
function Tensor
Tensor(
PITensor internalTensor
)
封装内部张量
Parameters:
- internalTensor 内部张量指针
function ~Tensor
~Tensor()
释放张量
function operator=
Tensor & operator=(
const Tensor & tensor
)
张量赋值
Parameters:
- tensor 张量
Return: 张量
function Tensor
template <class dataType >
Tensor(
const std::vector< dataType > & fromData
)
从 vector 构建张量
Parameters:
- fromData vector
Template Parameters:
- dataType 数据类型
function Tensor
template <class dataType >
Tensor(
const dataType * fromData,
int length
)
从指针地址及长度构建张量
Parameters:
- fromData 数据地址
- length 数据长度
Template Parameters:
- dataType 数据类型
function clone
Tensor clone() const
深度拷贝
Return: 张量
function reshape
Tensor reshape(
const TensorShape & shape
)
重新调整形状并返回调整后的张量
Parameters:
- shape 新的 shape
Return: 张量
function Tensor
Tensor(
int dim0,
void * data,
DataType type =FLOAT,
Layout layout =LAYOUT_TZYX
)
从数据指针构建一维向量
Parameters:
- dim0 一维数据长度
- data 数据指针
- type 数据类型
- layout 数据布局
function Tensor
Tensor(
int dim0,
int dim1,
void * data,
DataType type =FLOAT,
Layout layout =LAYOUT_TZYX
)
从数据指针构建二维矩阵
Parameters:
- dim0 维度0
- dim1 维度1
- data 数据指针
- type 数据类型
- layout 数据布局
function Tensor
Tensor(
int dim0,
int dim1,
int dim2,
void * data,
DataType type =FLOAT,
Layout layout =LAYOUT_TZYX
)
从数据指针构建三维张量
Parameters:
- dim0 维度0
- dim1 维度1
- dim2 维度2
- data 数据指针
- type 数据类型
- layout 数据布局
function Tensor
Tensor(
int dim0,
int dim1,
int dim2,
int dim3,
void * data,
DataType type =FLOAT,
Layout layout =LAYOUT_TZYX
)
从数据指针构建四维张量
Parameters:
- dim0 维度0
- dim1 维度1
- dim2 维度2
- dim3 维度3
- data 数据指针
- type 数据类型
- layout 数据布局
function Tensor
Tensor(
const TensorShape & shape,
void * data,
DataType type =FLOAT,
Layout layout =LAYOUT_TZYX
)
从数据指针及形状构建张张量
Parameters:
- shape 形状
- data 数据指针
- type 数据类型
- layout 数据布局
function Tensor
explicit Tensor(
int dim0,
DataType type =FLOAT,
Layout layout =LAYOUT_TZYX
)
自动分配构建一维向量
Parameters:
- dim0 维度 0
- type 数据类型
- layout 数据布局
function Tensor
Tensor(
int dim0,
int dim1,
DataType type =FLOAT,
Layout layout =LAYOUT_TZYX
)
自动分配构建二维矩阵
Parameters:
- dim0 维度0
- dim1 维度1
- type 数据类型
- layout 数据布局
function Tensor
Tensor(
int dim0,
int dim1,
int dim2,
DataType type =FLOAT,
Layout layout =LAYOUT_TZYX
)
自动分配构建三维张量
Parameters:
- dim0 维度0
- dim1 维度1
- dim2 维度2
- type 数据类型
- layout 数据布局
function Tensor
Tensor(
int dim0,
int dim1,
int dim2,
int dim3,
DataType type =FLOAT,
Layout layout =LAYOUT_TZYX
)
自动分配构建四维张量
Parameters:
- dim0 维度0
- dim1 维度1
- dim2 维度2
- dim3 维度3
- type 数据类型
- layout 数据布局
function Tensor
Tensor(
const TensorShape & shape,
DataType type,
Layout layout =LAYOUT_TZYX
)
自动分配指定形状的张量
Parameters:
- shape 形状
- type 数据类型
- layout 数据布局
function create_like
void create_like(
const Tensor & like
)
创建相似形状张量,不拷贝数据
Parameters:
- like 被相似张量
function fill
void fill(
VariableValue value
)
以指定数值填充张量
Parameters:
- value
function empty
bool empty() const
是否为空
Return:
- true, 为空
- false, 非空
function total
size_t total() const
数据元素总数
Return: 元素总数
function operator T*
template <typename T >
explicit operator T*()
快速获取数据指针
Template Parameters:
- T 数据类型
Return: 数据指针
function operator const T *
template <typename T >
explicit operator const T *() const
快速获取数据指针
Template Parameters:
- T 数据类型
Return: 数据指针
function getData
void * getData() const
获取数据指针
Return: 数据指针
function operator[]
float & operator[](
int i
)
便捷的浮点数据类型访问
Parameters:
- i 索引
Return: 数值
function operator[]
const float & operator[](
int i
) const
便捷的浮点数据类型访问
Parameters:
- i 索引
Return: 数值
function getType
DataType getType() const
获取数据类型
Return: 数据类型
function getLayout
Layout getLayout() const
获取数据布局
Return: 数据布局
function getElemSize
size_t getElemSize() const
获取元素字节大小
Return: 元素字节大小
function getShape
const TensorShape & getShape() const
获取张量形状
Return: 张量形状
function getTensor
PITensor getTensor() const
获取内部模块指针
Return: 内部模块指针
Note: 该方法仅被内部模块使用
Protected Attributes Documentation
variable tensor
PITensor tensor;
内部张量实现指针
Updated on 2022-08-19 at 17:14:26 +0800