3‐02 1層目のEXCEL化(続き)

●バイアスを足すマクロ

 Module04はバイアスを加算します。W1_Biasシートの一番下にあるバイアス16個を、前のシートの16列に足してplusBiasシートが生成されます。

図3-16 plusBiasシート

●ReLUで負の数を0にする

 Module05はReLU関数を施します。正の値はそのまま、負の値は0で、ReLUシートが生成されます。

図3‐17 正の数はそのまま

truncateで値が小さくなる

 Module06では下位
11ビットが切り捨てられます(Pythonでlay1outを1/256 -> 1/8にしている部分)。このようにハード規模削減のために、ビット数を減らします。更に31でリミッタをかけて、5ビットの範囲に収めます。

図3‐18 ハード化に備えて値を小さくする

●出力16chを分けるマクロ

 1層目の出力は16chあり、それぞれ784画素あります。今まで1枚のシートにまとめてあったものを16枚のシートに分けます。Module07を実行すると図3‐19のようにoutCh00〜15が現れます。各チャネルの画素は平面的(28x28)に並べ替えられます。


図3‐19 16枚の出力シートが現れる。それぞれ28×28

●PythonとEXCELが一致しているか確認

 上の図はEXCELで計算した1層目の出力(13番目)です。Pythonを走らせた際にlay1out_13.csvが生成されているので比較してみましょう。図3‐20と図3‐19はピタリ一致しています。


図3‐20 lay1out_13.csv - Pythonでの演算結果


●入力画像3ch+重み係数+バイアスでPythonと同じことをした

 出力16chがそれぞれPythonと一致するのを確認して1層目のEXCEL化は終了です。

最初のページへ

目次へ戻る