MNN meta backend 跟cpu backend 的maxpool结果不一致

ru9i0ody  于 2021-12-26  发布在  Java
关注(0)|答案(2)|浏览(453)

cpu backend maxpool 运算结果跟本地的python结果基本一致,但是metal计算结果跟cpu不一致,差别较大

我看官方给出测试代码只测试了PoolPadType_VALID padding类型

https://github.com/alibaba/MNN/blob/master/test/op/PoolingTest.cpp

难道SAME padding模式在metal实现跟cpu不一致吗?

hl0ma9xz

hl0ma9xz1#

查看metalPooling.metal文件,最大池化代码实现部分,发现下面的数据结构及其值分别为
struct pooling_sizes {
int input_width; ---> 480
int input_height; ---> 360
int output_width; ---> 480
int output_height; ---> 360
int slice; ---> 1
int kernel_width; ---> 9
int kernel_height; ---> 9
int stride_width; ---> 1
int stride_height; ---> 1
int pad_width; ---> 0
int pad_height; ---> 0
};

结合metal代码逻辑看,怀疑是pad_width 和 pad_height值有问题导致的?

wz3gfoph

wz3gfoph2#

了解了,我们测试一下

相关问题