4-03 vgg-3, 4層目のEXCEL化(続き)

●4層目の重み係数値は8種類

 次はvgg-4層目をEXCEL化します。これをダウンロードして開きましょう。

 シートは重み係数のシート(W4_Bias)だけです(図4‐29)。入力は128チャネルあり、カーネル(2次元フィルタ)が3x3=9なので128x9 = 1152行、出力は128チャネルあるので128列あります。同図のようにこの層の係数は-8, -4, -2, -1, +1, +2, +4, +8の
種類になります。


図4‐29 4層目の重み係数。この層もバイアスはなし。

●64枚のシートに入力128チャネル

 3層目の出力(これを解凍)を同じディレクトリに置いた後、VBAのModule01を実行すると4層目の入力画像のシートが生成されます。

 4層目の入力は128チャネルですが、生成されるシートは64枚です(図4‐30)。すなわち
1枚のシートに2チャネルぶんの画像が張り付けられています(*1)。各チャネルパディングで152×152になるので、2チャネルぶんだと各シート304行×152列になります。

(*1)シート数があまりにも多いとEXCELが重くなり、パソコンのメモリを圧迫するのでシート数を節約する。


図4-30 Module01で64シート、128チャネルぶん

●im2colxxシートも64枚に128チャネルぶん

 Module02を実行するとim2col00〜63が生成されます。各シート2チャネルぶんあるので9×2=18列、行数は150×4=600行になります。(*2)

(*2)150×150の画像の上4行のみ計算させる。


図4‐31 Module02で64シート、128チャネルぶん

●画素数を縦横半分の75x75にするプーリング

 
Module03〜08まで順番に実行して終了です。この層はプーリングがあるので出力はPool000〜127になります。(*3、4)


(*3)EXCELでは2行のみ計算(75行全部だと時間がかかるので)。3行目以下を計算させるにはここを参考。
(*4)EXCELではPool000〜003まで計算。Pool004以降を計算させるにはここを参考。


図4‐32 Module08で(全部で128チャネルのうち)4枚

●EXCELの2行をPythonと比較

 4層目の出力は128チャネル(Pool000〜128)あるのでこれを解凍してそれぞれのチャネルを比較します。図4‐33はlay4out_000.csvで、これは
Pythonで計算した4層目の出力チャネル0です。EXCELのPool000シートの2行を比較してピタリ一致することを確認します。


図4‐33 Pythonでの結果と比較する


最初のページへ



目次へ戻る