昇腾社区首页
中文
注册
开发者
下载

构造函数

函数功能

用于构造指定的Tensor对象。TensorV2类用来描述一个Tensor对象的信息以及行为,包含:形状、数据格式、数据类型、步长、偏移以及tensor数据内容tensordata。

函数原型

1
2
3
4
5
TensorV2()   //默认构造函数
TensorV2 (const StorageShape &storage_shape, const StorageFormat &storage_format, const TensorPlacement placement, const ge::DataType data_type, TensorAddress addr)
TensorV2(const StorageShape &storage_shape, const StorageFormat &storage_format, ge::DataType data_type)
TensorV2(const StorageShape &storage_shape, const StorageFormat &storage_format, const TensorPlacement placement, const ge::DataType data_type, TensorAddress addr, TensorAddrManager manager)
TensorV2(const StorageShape &storage_shape, const StorageFormat &storage_format, const TensorPlacement placement, const ge::DataType data_type, TensorAddress addr, TensorAddrManager manager, const Stride &stride, const int64_t offset)

参数说明

参数

输入/输出

说明

storage_shape

输入

指定tensor的形状信息。StorageShape类型。

storage_format

输入

指定tensor的数据格式信息。StorageFormat类型。

placement

输入

指定tensor的实际数据所存储的device位置。TensorPlacement类型。

data_type

输入

指定tensor的datatype信息。ge::DataType类型。

addr

输入

指定tensor的实际数据所存储的内存地址。TensorAddress类型,定义如下:

1
using TensorAddress = void *;

manager

输入

tensor data的管理函数,若manager为空,则认为addr就是tensor的数据地址,且此数据不需要被释放。

1
2
3
4
5
6
7
using TensorAddrManager = ge::graphStatus (*)(TensorAddress addr, TensorOperateType operate_type, void **out);
enum TensorOperateType {
  kGetTensorAddress,  ///< 获取Tensor的地址  
  kFreeTensor,        ///< 释放Tensor  
  kPlusShareCount,    ///< 共享Tensor  
  kTensorOperateType
};

stride

输入

指定tensor的步长信息。Stride类型。

offset

输入

指定tensor的偏移信息。int64_t类型。

返回值说明

返回一个初始化的Tensor对象。

约束说明

Tensor中的成员(format、shape、stride、offset等)的值均需要显式设置,否则均为未定义值。

TensorV2类不支持入图场景。

TensorV2类型指针转换为Tensor类型指针后可调用Tensor的成员函数。

Tensor类型指针转换为TensorV2类型指针前需要通过GetVersion()获取版本号,只有kTensorV2才能进行转换。

调用示例

1
2
3
4
5
TensorV2 tensor{{{8, 3, 224, 224}, {16, 3, 224, 224}},       // shape                
                {ge::FORMAT_ND, ge::FORMAT_FRACTAL_NZ, {}},  // format                              
                kFollowing,                                  // placement                
                ge::DT_FLOAT16,                              //dt                
                nullptr};