---
title: Cast
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/API/aolapi/atlasascendc_api_07_1194.html
sourcePath: /source/zh/CANNCommunityEdition/920beta1/API/aolapi/atlasascendc_api_07_1194.html
indexId: 988d3c70f14708a5f4eaf5ca07e4b602f839ef413203fc890565942af5d2893281
---
# Cast

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Ascend 950PR / Ascend 950DT | ☓ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| 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 A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 |
| dstDtype | 输入 | 转换后的目标dtype，数据类型支持FLOAT16、FLOAT、DOUBLE、BFLOAT16、INT8、UINT8、INT16、UINT16、INT32、UINT32、INT64、UINT64、BOOL、COMPLEX64、COMPLEX128。 说明： BFLOAT16适用于如下产品型号： Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 |
| 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);
}
```
