已合并
【fix】针对各轴repeat均为1的brodcast算子获取broadcast轴失败的场景进行兼容处理 #2364
【fix】针对各轴repeat均为1的brodcast算子获取broadcast轴失败的场景进行兼容处理 #2364
已合并
Nexen_NiSong创建于 19 天前
共 1 个文件变更+8-0
@@ -348,6 +348,14 @@ Status GetBroAxisFromNode(const NodePtr &bro_node, int64_t &bro_axis) {
348 GE_ASSERT_TRUE(bro_repeats.size() == bro_attr_axis.size());348 GE_ASSERT_TRUE(bro_repeats.size() == bro_attr_axis.size());
349 GE_ASSERT_TRUE(bro_strides.size() == bro_attr_axis.size());349 GE_ASSERT_TRUE(bro_strides.size() == bro_attr_axis.size());
350 GE_ASSERT_TRUE(pre_bro_repeats.size() == pre_bro_axis.size());350 GE_ASSERT_TRUE(pre_bro_repeats.size() == pre_bro_axis.size());
351+ const auto all_repeats_one =
352+ std::all_of(bro_repeats.begin(), bro_repeats.end(), [](const Expression &repeat) { return IsEqOne(repeat); });
353+ if (all_repeats_one) {
354+ bro_axis = -1;
W
Wwangmingming19 天前

333行已经初始化了,这里是不是可以省略?

likedislike
Nexen_NiSong
Nexen_NiSong
19 天前 评论:
wangmingming
19 天前 评论:
355+ GELOGI("No-op broadcast node %s(%s) with all-one output repeats, treat as no broadcast axis.",
356+ bro_node->GetName().c_str(), bro_node->GetType().c_str());
357+ return SUCCESS;
358+ }
351 for (size_t index = 0U; index < bro_attr_axis.size(); index++) {359 for (size_t index = 0U; index < bro_attr_axis.size(); index++) {
352 if (IsEqOne(bro_repeats[index])) {360 if (IsEqOne(bro_repeats[index])) {
353 continue;361 continue;