我正在尝试使用加速中的Apple BNNS(基本神经网络子程序)库执行1x1卷积。
当我在9x1列向量上运行时,会得到意想不到的结果。
示例代码发布于:https://gist.github.com/cancan101/5887cb93cc91a2d10e2bfd23284bb438(a modification of BNNS sample code.)
预期结果: 打印数字0-8。
实际结果:
o0: 0.000000
o1: 0.000000
o2: 0.000000
o3: 3.000000
o4: 0.000000
o5: 5.000000
o6: 0.000000
o7: 7.000000
o8: 0.000000
我怀疑我这样做是正确的,但我愿意接受有关链接代码的反馈。
答案 0 :(得分:0)
如果转置为行向量,则会看到预期的输出
来自:
i_desc.width = 1;
i_desc.height = 9;
i_desc.row_stride = 1;
到此:
i_desc.width = 9;
i_desc.height = 1;
i_desc.row_stride = 9;
输出相同:
o_desc.width = 9;
o_desc.height = 1;
o_desc.row_stride = 9;
结果:
Input image stack: 9 x 1 x 1
Output image stack: 9 x 1 x 1
Convolution kernel: 1 x 1
o0: 0.000000
o1: 1.000000
o2: 2.000000
o3: 3.000000
o4: 4.000000
o5: 5.000000
o6: 6.000000
o7: 7.000000
o8: 8.000000