Transpose
TensorMalloc
函数功能
Tensor的内存申请接口,使用该接口申请的Tensor内存无需用户管理,由内部管理释放。
函数原型
static APP_ERROR TensorMalloc(Tensor &tensor)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| tensor | 输出 | 待申请内存的Tensor,使用不传入内存的构造函数进行构造。 |
返回参数说明
| 数据结构 | 说明 |
|---|---|
| APP_ERROR | 程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: Tensor
BatchConcat
函数功能
将多个Tensor进行组batch,按照batch维组装,默认输入的每个Tensor第一维为batch维,内存连续。
函数原型
friend APP_ERROR BatchConcat(const std::vector<Tensor> &inputs, Tensor &output)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| inputs | 输入 | 待组batch的Tensor列表。 |
| output | 输出 | 组装好batch的Tensor。 |
返回参数说明
| 数据结构 | 说明 |
|---|---|
| APP_ERROR | 程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: Tensor
Transpose
函数功能
可通过指定的一组轴维度(axes),对输入的Tensor数据进行转置处理,如未指定具体轴维度,则默认对Tensor数据进行反序转置。
该功能支持对输出数据进行内存复用,用户可通过预先申请的内存(内存大小需与输入一致)传入输出数据。
功能仅支持在Host侧执行操作,如需处理Device侧Tensor数据,请先通过ToHost接口,将Device侧数据转移到Host侧,再进行转置。
函数原型
friend APP_ERROR Transpose(const Tensor &input, Tensor &output, std::vector<uint32_t> axes = {})
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| input | 输入 | 待转置Tensor类。 维度支持2维、3维、4维,数据类型支持float32、float16、uint8。 |
| output | 输出 | 转置后的Tensor类。 |
| axes | 输入 | 转置选项,默认值为空。 如果未指定具体axes,则默认生成反序“axes”对“input”中的数据进行反序转置。 例如:三维张量默认生成反序“axes”为{2, 1, 0} 。 |
返回参数说明
| 数据结构 | 说明 |
|---|---|
| APP_ERROR | 程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: Tensor
Clone
函数功能
原型1:
将Tensor进行深拷贝,返回拷贝后得到的Tensor。
- 如果Tensor在Host侧,拷贝过程均为同步操作。
- 如果Tensor在DVPP或Device侧,则需根据“stream”参数传入决定同步或异步操作, Tensor所在的Device需与stream所在的Device一致。
原型2:
将Tensor进行指定区域深拷贝,将src的区域内容拷贝到被赋值张量的区域,要求:
- src和被赋值Tensor均不能为空,被赋值Tensor的长宽尺寸为[64, 4096],src的最大高度不超过“1048576”,src总尺寸(N*H*W*C)不超过“67108864”。
- src和被赋值Tensor包含相同高宽的引用区域(ReferRect),且均不为0,ReferRect宽度不超过“1920”。
- src和被赋值Tensor数据类型支持uint8、float16,且类型需一致。
- src和被赋值Tensor仅支持NHWC、HWC和HW形状的Tensor(通道数为1或3,N为1),两者维度和通道数均需相等。
- src和被赋值Tensor需要在DVPP或Device侧。
- src和被赋值所在的Device需与stream所在的Device一致。
函数原型
// 原型1
Tensor Clone(AscendStream stream=AscendStream::DefaultStream()) const;
// 原型2
APP_ERROR Clone(const Tensor &src, AscendStream &stream = AscendStream::DefaultStream());
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| src | 输入 | 将src的引用指定区域赋值给执行该方法的张量的引用区域。 |
| stream | 输入 | AscendStream类型,默认值为AscendStream::DefaultStream()。当参数值为默认值时,接口为同步操作,其他情况下,接口为异步操作。 |
返回参数说明
原型1:
| 数据结构 | 说明 |
|---|---|
| Tensor | Tensor类,请参见Tensor。 |
原型2:
| 数据结构 | 说明 |
|---|---|
| APP_ERROR | 程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: Tensor
SetTensorValue
函数功能
设置Tensor的值,支持int32_t、uint8_t、float16、float32类型。
Tensor对象需在Device侧且数据类型与调用的SetTensorValue方法匹配。
Tensor所在的Device需与stream所在的Device一致。
函数原型
APP_ERROR SetTensorValue(uint8_t value, AscendStream& stream = AscendStream::DefaultStream());
APP_ERROR SetTensorValue(float value, bool IsFloat16 = false, AscendStream& stream = AscendStream::DefaultStream());
APP_ERROR SetTensorValue(int32_t value, AscendStream& stream = AscendStream::DefaultStream());
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| value | 输入 | int32_t、uint8_t、float类型,指定Tensor待设置的值。 |
| isFloat16 | 输入 | bool类型,默认为“false”。 - 为“true”时表示设置Tensor元素为floa16类型。 - 为“false”时表示设置Tensor元素为floa32类型。 |
| stream | 输入 | AscendStream类型,默认值为AscendStream::DefaultStream()。当参数值为默认值时,接口为同步操作,其他情况下,接口为异步操作。 |
返回参数说明
| 数据结构 | 说明 |
|---|---|
| APP_ERROR | 程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: Tensor
在线提单