ocean::Tensor

Neurocean大约 6 分钟

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)
从指针地址及长度构建张量
Tensorclone() const
深度拷贝
Tensorreshape(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)
自动分配指定形状的张量
voidcreate_like(const Tensor & like)
创建相似形状张量,不拷贝数据
voidfill(VariableValue value)
以指定数值填充张量
boolempty() const
是否为空
size_ttotal() 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
便捷的浮点数据类型访问
DataTypegetType() const
获取数据类型
LayoutgetLayout() const
获取数据布局
size_tgetElemSize() const
获取元素字节大小
const TensorShape &getShape() const
获取张量形状
PITensorgetTensor() const
获取内部模块指针

Protected Attributes

Name
PITensortensor
内部张量实现指针

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

上次编辑于:
贡献者: damone