2017-03-07 57 views
0

我想在加速中使用Apple BNNS(基本神經網絡子程序)庫進行1x1卷積。使用基本的神經網絡子程序(BNN)加速

當我在9x1列向量上運行時,出現意外的結果。

示例代碼張貼在:https://gist.github.com/cancan101/5887cb93cc91a2d10e2bfd23284bb438(一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

如果你調換到行向量,你會看到預期的輸出

從這個:

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 
+0

對,我看到這個工作,但我做錯了什麼?或者我應該工作 –

+0

我不明白你在問什麼。卷積是一種矩陣運算,當您轉置輸入時,您不能期望結果保持不變。 – paiv

+0

行向量上的1x1卷積(權重1)應產生匹配的行向量,並且1x1卷積應產生匹配的列向量。 –