---
title: EmbeddingBag
description: "根据indices从weight中获得一组被聚合的数，然后根据offsets的偏移和mode指定的聚合模式对获取的数进行max、sum、mean聚合。其余参数则更细化了计算过程的控制。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/aolapi/atlasoxol_09_0054.html
sourcePath: /source/zh/canncommercial/900/API/aolapi/atlasoxol_09_0054.html
indexId: 91e8257b985c7ac446918ee26f6419a617e68f96dead69169c2f673df6e7a08f63
---
# EmbeddingBag

#### 功能

根据indices从weight中获得一组被聚合的数，然后根据offsets的偏移和mode指定的聚合模式对获取的数进行max、sum、mean聚合。其余参数则更细化了计算过程的控制。


#### 输入

- weight：输入Tensor，词嵌入矩阵，包含所有词的嵌入向量，支持2维，支持非连续Tensor，数据类型：float，shape，数据格式支持ND。
- indices：输入Tensor，包含索引的Tensor，指定要从weight中提取哪些词的嵌入向量，支持1-2维，数据类型：UINT8、INT8、INT16、INT32、INT64，shape。
- offset(可选)：输入Tensor，用于将indices分割成多个bag的偏移量张量，当indices是1维时，offsets的shape支持1维。当indices是2维时，offsets的shape支持1-2维，数据类型：UINT8、INT8、INT16、INT32、INT64。
- per_sample_weights(可选)：指定样本权重，shape支持1维，数据类型与weight一致，仅在sum模式下，可以不是nullptr，其他模式必须为nullptr。


#### 属性

- mode：数据类型支持string型，用于控制聚合模式，0表示sum聚合模式，1表示mean聚合模式，其他表示max聚合模式。
- scale_grad_by_freq：数据类型支持bool型，输入Tensor，用于控制是否根据词频缩放梯度，当scale_grad_by_freq为true时，会根据词频对梯度进行缩放，当scale_grad_by_freq为false时，则不会。
- sparse：数据类型支持bool型，用于控制稀疏模式，当为false时，表示weight非稀疏矩阵；当为true时，表示weight是稀疏矩阵。
- include_last_offset：数据类型支持bool型，控制是否包含最后的偏移，当为false时，表示不包含最后的偏移；当为true时，表示包含最后的偏移。


#### 输出

y：输出Tensor，数据类型：float。


#### 约束与限制

无。


#### 支持的ONNX版本

Opset v8/v9/v10/v11/v12/v13/v14/v15/v16
