BNN-PYNQ のトレーニングを試してみる1”の続き。

前回は、Theano やpylearn2 をインストールして、mnist のトレーニングを行った。33時間20分かかってトレーニングが終了した。
今回は、その結果を見ていこう。

~/BNN-PYNQ/bnn/src/training ディレクトリに mnist_parameters.npz ができていた。

トレーニングされたmnist の重みをバイナリにしてみよう。
python DATASET-gen-binary-weights.py
を実行した。
e97af627.png

ac75ec79.png


表示出力の全文を示す。

masaaki@masaaki-VirtualBox2:~/BNN-PYNQ/bnn/src/training$ python mnist-gen-binary-weights.py
Extracting FCBN complex, ins = 784 outs = 1024
Layer 0: 1024 x 832, SIMD = 64, PE = 32
WMem = 416 TMem = 32
Extracting FCBN complex, ins = 1024 outs = 1024
Layer 1: 1024 x 1024, SIMD = 32, PE = 64
WMem = 512 TMem = 16
Extracting FCBN complex, ins = 1024 outs = 1024
Layer 2: 1024 x 1024, SIMD = 64, PE = 32
WMem = 512 TMem = 32
Extracting FCBN complex, ins = 1024 outs = 10
Layer 3: 16 x 1024, SIMD = 8, PE = 16
WMem = 128 TMem = 1
Config header file:



#define L0_SIMD 64
#define L0_PE 32
#define L0_WMEM 416
#define L0_TMEM 32
#define L0_MW 832
#define L0_MH 1024

#define L1_SIMD 32
#define L1_PE 64
#define L1_WMEM 512
#define L1_TMEM 16
#define L1_MW 1024
#define L1_MH 1024

#define L2_SIMD 64
#define L2_PE 32
#define L2_WMEM 512
#define L2_TMEM 32
#define L2_MW 1024
#define L2_MH 1024

#define L3_SIMD 8
#define L3_PE 16
#define L3_WMEM 128
#define L3_TMEM 1
#define L3_MW 1024
#define L3_MH 16

masaaki@masaaki-VirtualBox2:~/


すると、binparam-lfc-pynq ディレクトリができていた。
dccedcc0.png


binparam-lfc-pynq ディレクトリの中身を示す。
64f82159.png


これはちょうど ~/BNN-PYNQ/bnn/params/mnist ディレクトリと同じだ。
a5a486f2.png


CIFAR-10 ConvNet は、どれだけ時間がかかるか恐ろしい。今、GPU のGTX1060を購入したので、Ubuntu とWindowsのデュアルブートにして、Ubuntu でどのくらいトレーニングに時間がかかるか?調べてみたいと思う。