| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[Fix] BatchToSpaceND InferShape 拒绝非正 block_shape Co-authored-by: KaranocaVe<karanocave@qq.com> # message auto-generated for no-merge-commit merge: !4998 merge fix/batch-to-space-block-shape into master [Fix] BatchToSpaceND InferShape 拒绝非正 block_shape Created-by: KaranocaVe Commit-by: KaranocaVe Merged-by: cann-robot Description: ## 修复摘要 BatchToSpaceND 的文档要求 block_shape 的每个元素严格大于 0,但 conversion/batch_to_space_nd/op_host/batch_to_space_nd_infershape.cpp 原先 只在 batch 计算时拒绝 0,负值会参与除法和空间维度计算,生成负输出 shape。本 修复对常量 block_shape 统一执行正值校验,并在 unknown-rank 输入返回前完成该 校验,避免非法常量绕过。 ## 变更范围和兼容性 - 修改 conversion/batch_to_space_nd/op_host/batch_to_space_nd_infershape.cpp, 在 shape 推导前拒绝所有 block_shape <= 0 的常量值。 - 修改 conversion/batch_to_space_nd/tests/ut/op_host/test_batch_to_space_nd_infershape.cpp, 增加已知 rank、unknown rank 的负值拒绝测试,并保留零值和合法输入覆盖。 - 合法正值 block_shape、未知输入 rank 和动态 block_shape 的既有处理保持不变。 ## 测试结果 - cmake --build <build> --target math_op_host_ut -j2:退出码 0。 - math_op_host_ut --gtest_filter='BatchToSpaceNDInfershapeTest.*' --gtest_repeat=5: 29 个测试每轮通过,5/5 轮通过,退出码 0。 - 合法 [2,2] 返回成功并生成 [1,2,2,1];[-1,2] 在已知 rank 和 unknown rank 两种场景均返回 GRAPH_FAILED;[0,2] 仍返回失败。 ## 关联的 Issue - https://gitcode.com/cann/ops-math/issues/2823 See merge request: cann/ops-math!4998 | 1 个月前 |