---
title: NonzeroOperation
description: "| 硬件型号 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendtb/ascendtb_01_0067.html
sourcePath: /source/zh/canncommercial/900/API/ascendtb/ascendtb_01_0067.html
indexId: 5cb6facd9c758e813d409cf7518bc6f398f4ca1bc40597ea413471cae992a7de64
---
# NonzeroOperation

#### 产品支持情况

| 硬件型号 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | x |
| Atlas A3 推理系列产品 / Atlas A3 训练系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 训练系列产品 | x |
| Atlas 推理系列产品 | x |
| Atlas 200I/500 A2 推理产品 | x |


#### 功能说明

输出非零值索引。


#### 定义

```
struct NonzeroParam {
    uint8_t rsv[8] = {0};
};
```


#### 参数列表

| 成员名称 | 类型 | 默认值 | 描述 |
| --- | --- | --- | --- |
| rsv[8] | uint8\_t | {0} | 预留参数。 |


#### 输入

| 参数 | 维度 | 数据类型 | 格式 | 描述 |
| --- | --- | --- | --- | --- |
| x | [dim\_0, dim\_1, ..., dim\_n] | int64 | ND | 输入tensor。 |


#### 输出

| 参数 | 维度 | 数据类型 | 格式 | 描述 |
| --- | --- | --- | --- | --- |
| output1 | [inputDimNum, inputNumel] | int64 | ND | 非零元素下标。 inputDimNum为输入tensor x的维度数（n+1）。 inputNumel为输入tensor x所有维度的乘积（dim\_0 \* dim\_1 \* ... \* dim\_n）。 |
| output2 | [1] | int64 | ND | 非零元素个数。 |


#### 接口调用示例

- 一维场景
  输入

```
intensor = {[0, 1, 1, 0, 1]}
```


  输出

```
outtensor1 = {1, 2, 4, 0, 0}
outtensor2 = [3]
```


- 二维场景
  输入

```
intensor = {[[0, 1, 1, 0, 1], [0, 1, 1, 0, 1]]}
```


  输出

```
outtensor1 = {[[0, 0, 0, 1, 1, 1, 0, 0, 0, 0], [1, 2, 4, 1, 2, 4, 0, 0, 0, 0]]}
outtensor2 = [6]
```
