Transpose

函数功能

图像处理类,Tensor类的张量多维转置接口,按照给定的axes维度排列方式进行转置。支持异步调用。

当前支持Atlas 推理系列产品Atlas 200I/500 A2 推理产品

Atlas 200I/500 A2 推理产品上,支持预加载(示例请参见初始化算子预加载文件实例”章节)。

使用时需满足以下条件:

函数原型

1
APP_ERROR Transpose(const Tensor &src, Tensor &dst, std::vector<int> axes, AscendStream &stream = AscendStream::DefaultStream());

参数说明

参数名

输入/输出

说明

src

输入

Tensor类,支持float16、float32、uint8类型输入。

dst

输出

Tensor类,支持float16、float32、uint8类型输出,支持传入空Tensor,如果dst不为空Tensor,需要调用Tensor.Malloc()接口提前分配内存。

形状(Shape)必须为“src”按照“axes”规定交换轴过后的形状。

例如:src为 {1, 480, 640, 3},axes值为 {0, 2, 1, 3},dst形状必须为{1, 640, 480, 3}。

axes

输入

std::vector<int>类,指定转置操作维度的排列方式。

  • “axes”长度必须与输入Tensor的维度一致,例如,“src”为4维,“axes”长度必须为4。
  • “axes”中的元素必须包含[0, size-1]区间中的数且每个数只能出现一次。
  • 如传入空向量,则按照反序转置进行处理。

stream

输入

AscendStream类型,默认值为“AscendStream::DefaultStream()”。当参数值为默认值时,接口为同步操作,其他情况下,接口为异步操作。

返回参数说明

数据结构

说明

APP_ERROR

程序执行返回的错误码,请参考APP_ERROR说明