使用基本神经网络子程序(BNN)加速

时间:2017-03-07 06:30:36

标签: macos accelerate-framework

我正在尝试使用加速中的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

我怀疑我这样做是正确的,但我愿意接受有关链接代码的反馈。

1 个答案:

答案 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