2017-03-07 3 views
0

AccelerateのApple BNNS(Basic Neural Network Subroutine)ライブラリを使用して1x1コンボリューションを実行しようとしています。基本ニューラルネットワークサブルーチン(BNN)のアクセラレーションを使用する

私は9x1列ベクトルで実行すると、予期しない結果が得られます。

に掲載サンプルコード:https://gist.github.com/cancan101/5887cb93cc91a2d10e2bfd23284bb438modification 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 = 9; 
i_desc.height = 1; 
i_desc.row_stride = 9; 

o_desc.width = 9; 
o_desc.height = 1; 
o_desc.row_stride = 9; 
これに

i_desc.width = 1; 
i_desc.height = 9; 
i_desc.row_stride = 1; 

結果:

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畳み込みで一致する列ベクトルを生成する必要があります。 –

関連する問題