已合并
修复avg_pool在divisorOverride为负数时,计算逻辑错误问题 #6931
klein8793创建于 7月2日
修复avg_pool在divisorOverride为负数时,计算逻辑错误问题 #6931
已合并
klein8793创建于 7月2日
2 个文件变更+2-2
Mpooling/avg_pool/op_kernel/arch35/avg_pool_big_kernel.h+1-1
@@ -138,7 +138,7 @@ __aicore__ inline void AvgPoolBigKernel<T>::CalcKernelSize(int64_t curIdx, int64
138 curOriginIndex_ = curOriginH_ * tilingData_->wInDim + curOriginW_;138 curOriginIndex_ = curOriginH_ * tilingData_->wInDim + curOriginW_;
139 curInOffset = curNc * inHW_ + curOriginIndex_;139 curInOffset = curNc * inHW_ + curOriginIndex_;
140 140 
141 if (tilingData_->divisorOverride > 0) {141 if (tilingData_->divisorOverride) {
C
Cchenqi3177月4日

修改后 上下文逻辑不通顺

1、判断不为0 应该使用 if(xxx != 0) 2、修改后 第一个条件和最后一个esle 等价,但是逻辑不通 若最后一个else 不需要 请删掉

最后建议 if(xxx == 0) { } else {

likedislike
klein8793
klein8793
7月6日 评论:
likedislike
142 mulsFactor_ = 1.0f / static_cast<float>(tilingData_->divisorOverride);142 mulsFactor_ = 1.0f / static_cast<float>(tilingData_->divisorOverride);
143 } else if (tilingData_->countIncludePad == 0) {143 } else if (tilingData_->countIncludePad == 0) {
144 mulsFactor_ = curkH * curkW == 0 ? 0 : 1.0f / static_cast<float>(curkH * curkW);144 mulsFactor_ = curkH * curkW == 0 ? 0 : 1.0f / static_cast<float>(curkH * curkW);
Mpooling/avg_pool/op_kernel/arch35/avg_pool_big_kernel_nhwc.h+1-1
@@ -158,7 +158,7 @@ __aicore__ inline void AvgPoolNhwcBigKernel<T>::CalcKernelSize(int64_t curIdx, i
158 curOriginIndex_ = (curOriginH_ * tilingData_->wInDim + curOriginW_) * tilingData_->channel;158 curOriginIndex_ = (curOriginH_ * tilingData_->wInDim + curOriginW_) * tilingData_->channel;
159 curInOffset = curN * inHW_ * tilingData_->channel + curOriginIndex_;159 curInOffset = curN * inHW_ * tilingData_->channel + curOriginIndex_;
160 160 
161 if (tilingData_->divisorOverride > 0) {161 if (tilingData_->divisorOverride) {
162 mulsFactor_ = 1.0f / static_cast<float>(tilingData_->divisorOverride);162 mulsFactor_ = 1.0f / static_cast<float>(tilingData_->divisorOverride);
163 } else if (tilingData_->countIncludePad == 0) {163 } else if (tilingData_->countIncludePad == 0) {
164 mulsFactor_ = curkH * curkW == 0 ? 0 : 1.0f / static_cast<float>(curkH * curkW);164 mulsFactor_ = curkH * curkW == 0 ? 0 : 1.0f / static_cast<float>(curkH * curkW);