下载
中文
注册

Reshape

支持的产品型号

Atlas 训练系列产品

Atlas A2训练系列产品/Atlas 800I A2推理产品

Atlas 200/500 A2推理产品

Atlas 推理系列产品

函数功能

该函数不改变算子tensor数据,只是将用户传入的输入tensor x的shape转换成该函数的第二个参数shape。

函数原型

const aclTensor *Reshape(const aclTensor *x, const op::Shape &shape, aclOpExecutor *executor)

const aclTensor *Reshape(const aclTensor *x, const aclIntArray *shape, aclOpExecutor *executor)

参数说明

参数

输入/输出

说明

x

输入

待转换的输入tensor。数据类型和数据格式不限制。输入必须保证是连续内存数据。

shape

输入

转换后的目标shape,支持aclIntArray*、op::Shape(即gert::Shape)类型。数据类型和数据格式不限制。

executor

输入

op执行器,包含了算子计算流程。

返回值说明

若reshape转换成功,则返回带有目标shape信息的aclTensor给调用者;若失败,则返回nullptr。

约束说明

  • reshape转换成功的前提是x的ShapeSize需要和第二个参数shape的ShapeSize相等,所谓的ShapeSize举例如下:A的shape=(1, 3, 256, 256), 则A的ShapeSize=1*3*256*256。
  • 当前不支持转换成空tensor,所谓的空tensor即shape中包含0。

调用示例

void Func(const aclTensor *x, const op::Shape &shape, aclOpExecutor *executor) {
    auto ret = l0op::Reshape(x, shape, executor);
    return;
}