4-01 vgg-1層目のEXCEL化(続き)

●Pythonと同じようにビットシフト

 整数で積和演算するため、その結果は大きな値になります。したがってModule04を実行して
13ビット右シフトして値を小さくします(図4‐09)。


図4‐09 truncate

●ReLu関数を施す

 Module05は
ReLuを行います。図4‐10のように負の値はすべて0になります。このシートの列は出力チャネル数(64列)、行は出力画素数(300×20=6000行)になります。またReluの際、リミッタが施され値は0〜31の範囲(符号なし5ビット)に制限されます。


図4-10 負の数は0になる

●出力画像を得るModule06

 ReLuのシートは300×20=6000画素が縦に並んでいます。最後のModule06ではそれを2次元に並び替えます。出力は
64チャネルあり(*3)、各チャネル20行のみ計算されます(*4)。

(*3)4チャネルのみ計算。64チャネルだと時間がかかるので。
(*4)300行全部計算するとパソコンのメモリ不足になるので。


図4‐11 出力は64チャネル。そのうちの4チャネルを平面的に並び替え


●整数の演算なのでピタリ一致する

 これ
Pythonで計算した結果をCSV形式でセーブしたものです。ダウンロード、解凍してEXCELの結果と比較しましょう。図4‐12のようにピタリ一致していることを確認します(同図はoutCh00とlay1out_00.csvを比較している)。


図4‐12 1層目の出力チャネル0を比較

●出力は全部で64チャネルある

 Module06を変更すると(図4‐13)他のチャネルを確認できます。同図ではoutCh60〜63のシートを生成します。


図4‐13 他のチャネルを見たいときは変更


最初のページへ



目次へ戻る