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

#### 产品支持情况

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


#### 功能说明

采样功能。对最后一个轴进行采样，随机抽取numSamples个值，输出下标。


#### 定义

```
struct MultinomialParam {
    uint32_t numSamples = 1;
    uint32_t randSeed = 0;
    uint8_t rsv[8] = {0};
};
```


#### 参数列表

| 成员名称 | 类型 | 默认值 | 描述 |
| --- | --- | --- | --- |
| numSamples | uint32\_t | 1 | 随机采样数。 小于等于x对应的维度大小，最大为64。 大于0 并小于vocSize。 |
| randSeed | uint32\_t | 0 | 随机数种子。 |
| rsv[8] | uint8\_t | {0} | 预留参数。 |


#### 输入

| 参数 | 维度 | 数据类型 | 格式 | 描述 |
| --- | --- | --- | --- | --- |
| x | [batch, vocSize] | float16 | ND | 输入tensor。最后一维输入大于98304时可能存在精度误差。 |


#### 输出

| 参数 | 维度 | 数据类型 | 格式 | 描述 |
| --- | --- | --- | --- | --- |
| output | [batch, numSamples] | int32 | ND | 采数数据下标。dims[1]必须等于numSamples |


#### 约束说明

用户需确保对最后一个轴进行归一化操作。


#### 接口调用示例

- 输入
  intensor =

```
[[0.0701, 0.1021, 0.1010, 0.1005],
[0.1101, 0.1020, 0.1017, 0.0990],
[0.0592, 0.1006, 0.1006, 0.1002]]
```


  numSamples = 1

  randSeed = 0

- 输出
  outtensor =

```
[[3],
[3],
[3]]
```
