已关闭
Embedding 二维 indices 推导错误输出形状 #6512
KaranocaVe创建于 16 天前关闭于 8 天前
16 天前 关联了pull request:修复 Embedding 二维 indices 的输出形状推导
16 天前 修改了issue 的描述
16 天前 将 KaranocaVe 设为负责人
8 天前 关闭了 issue
8 天前 添加了label:resolved
KaranocaVe
6 天前 评论:
6 天前 评论:
@chenfeng61 您好,这个 Issue 对应的修复已经合入:https://gitcode.com/cann/ops-nn/merge_requests/11750
开发者计划反馈,Issue 需要有 Accepted 标签才能计入积分,仅关闭或标记 resolved 还不够。目前这条 Issue 尚未标记 Accepted,麻烦您结合问题和已合入的修复复核一下;确认符合受理条件后,帮忙补上 Accepted 标签。
感谢您的支持!


Embedding 二维 indices 推导错误输出形状
问题
Embedding的InferShape先将 indices 的各维写入输出,随后把 weight 的 embedding width 固定写到output[1]。当 indices rank 为 2 时,第二个 indices 维度被覆盖,新增的末维也没有设置;InferShape 仍返回成功。复现
[8, 10][2, 3][2, 3, 10][2, 10, 0],返回GRAPH_SUCCESS同一算子的一维 indices
[9]原本可得到[9, 10]。影响
使用二维及更高 rank indices 的图会收到错误的 Embedding 输出形状,导致后续算子形状推导或执行与真实输出不符。
修复
将 weight 的最后一维写入
output[rank(indices)],保留 indices 的所有维度;增加二维 Host InferShape 回归用例。Validation
验证记录
EmbeddingTest.*定向 Host InferShape 测试 2 项通过:一维 indices 输出[9, 10],二维 indices 输出[2, 3, 10]。git diff --check和新增 C++ 测试的语法检查通过。关联 PR: https://gitcode.com/cann/ops-nn/merge_requests/11750