---
title: 构造函数
description: "用于构造指定的Tensor对象。Tensor类用来描述一个tensor对象的信息以及行为，包含：shape信息、format信息、datatype信息以及tensor数据内容tensordata。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/maintenref/basicdataapi/atlasopapi_07_00196.html
sourcePath: /source/zh/canncommercial/900/maintenref/basicdataapi/atlasopapi_07_00196.html
indexId: 3f6779d89d121699c181deebbf21de48961df0b7a063e7a8326288a45389cecf78
---
# 构造函数

#### 函数功能

用于构造指定的Tensor对象。Tensor类用来描述一个tensor对象的信息以及行为，包含：shape信息、format信息、datatype信息以及tensor数据内容tensordata。


#### 函数原型

```
Tensor()   //默认构造函数
Tensor (const StorageShape &storage_shape, const StorageFormat &storage_format, const TensorPlacement placement, const ge::DataType data_type, TensorAddress addr)
Tensor(const StorageShape &storage_shape, const StorageFormat &storage_format, ge::DataType data_type)
Tensor(const StorageShape &storage_shape, const StorageFormat &storage_format, const TensorPlacement placement, const ge::DataType data_type, TensorAddress addr, TensorAddrManager manager)
```


#### 参数说明

| 参数 | 输入/输出 | 说明 |  |  |
| --- | --- | --- | --- | --- |
| storage\_shape | 输入 | 指定tensor的shape信息。StorageShape类型。 |  |  |
| storage\_format | 输入 | 指定tensor的format信息。StorageFormat类型。 |  |  |
| placement | 输入 | 指定tensor的实际数据所存储的device位置。TensorPlacement类型。 |  |  |
| data\_type | 输入 | 指定tensor的datatype信息。ge::DataType类型。 |  |  |
| addr | 输入 | 指定tensor的实际数据所存储的内存地址。TensorAddress类型，定义如下： 1 using TensorAddress = void \*; | 1 | using TensorAddress = void \*; |
| 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 }; | 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 }; |
| 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 }; |  |  |  |


#### 返回值说明

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


#### 约束说明

Tensor中的成员（format、shape等）的值均需要显式设置，否则均为未定义值。


#### 调用示例

```
Tensor 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};
```
