●extras-6層目のEXCELを開く

 次はextras-6層目をEXCEL化します。これをダウンロードして開きます。

 シートは1つ(exW6_Bias)だけで、これは重み係数のシートです(図5-26)。入力は128チャネルあり、
カーネルが3x3=9なので9x128= 1152行、出力は256チャネルあるので256列あります。

 係数は-4, -1, +1, +4の
4種類に制限しています。全て2の累乗なのでビットシフトで乗算を達成できます(乗算器の節約)。またこの層もバイアスは省略するのでありません。


図5-26 extras-6層目の係数。カーネルは3×3


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

 
VBAのModule1を実行すると、ex5out_000.csv〜ex5out_127.csv(extras-5層目の出力、これを解凍して同じディレクトリに置く)が新しいシートに転写され、それら(inCh00〜inCh63)がextra-6層目の入力になります(図5-27)。

 この層の入力は128チャネルですが、生成されるシートは64枚、すなわち1枚のシートに2チャネルぶんの画像が張り付けられています(*1)。extras-5層目の出力は5×5
なので5列、各シート2チャネルぶんあるので5x2=10行になります。

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


図5-27 64×2=全部で128チャネル


●extras-6層目はパディングがないので画素数が減る

 6層目の入力にはパディングがないので5×5のまま、それを3×3のカーネルで畳み込むと、図5-28のようにその結果は3×3画素になります。

図5-28 動けるのは3×3の範囲


●extras-6層目の出力の答え合わせ

 Module02〜07を順番に実行します。

 図5-29はoutCh000シートとex6out_000.csv(Pythonで計算したextras-6層目のチャネル0)を比較しています(これを解凍して開く)。出力は256チャネルあり、それぞれ
ピタリ一致することを確認します。


図5-29 EXCEL化してもPythonの結果と変わらない


最初のページへ



目次へ戻る