下载
中文
注册

Cast

支持的产品型号

Atlas 训练系列产品

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

Atlas 推理系列产品

函数功能

将输入tensor转换为指定的数据类型。

函数原型

const aclTensor *Cast(const aclTensor *self, op::DataType dstDtype, aclOpExecutor *executor)

参数说明

参数

输入/输出

说明

self

输入

待转换的输入tensor,数据类型支持FLOAT16、FLOAT、DOUBLE、BFLOAT16、INT8、UINT8、INT16、UINT16、INT32、UINT32、INT64、UINT64、BOOL、COMPLEX64、COMPLEX128。数据格式支持ND。

说明:

BFLOAT16适用于如下产品型号:

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

dstDtype

输入

转换后的目标dtype,数据类型支持FLOAT16、FLOAT、DOUBLE、BFLOAT16、INT8、UINT8、INT16、UINT16、INT32、UINT32、INT64、UINT64、BOOL、COMPLEX64、COMPLEX128。

说明:

BFLOAT16适用于如下产品型号:

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

executor

输入

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

返回值说明

返回类型为dstDtype的tensor。

约束说明

调用示例

// 固定写法,创建OpExecutor
auto uniqueExecutor = CREATE_EXECUTOR();

auto selfCasted = self;
// 当self为布尔类型时,利用Cast接口转换为uint8类型后可进行整型计算;
if (self->GetDataType() == op::DataType::DT_BOOL) {
  selfCasted = l0op::Cast(self, op::DataType::DT_UINT8, uniqueExecutor.get());
  CHECK_RET(selfCasted != nullptr, ACLNN_ERR_PARAM_NULLPTR);
}