●extras-2層目のEXCELを開く

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

 シートは1つ(exW2_Bias)だけで、これは重み係数のシートです(図5‐06)。入力は256チャネルあり、
カーネルが3x3=9なので9x256= 2304行、出力は512チャネルあるので512列あります。

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


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


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

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

 この層の入力は256チャネルですが、生成されるシートは64枚、すなわち1枚のシートに4チャネルぶんの画像が張り付けられています(*1)。extras-1層目の出力は19×19ですが、
パディングで21×21になるので21列、各シート4チャネルぶんあるので21x4=84行になります。

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


図5‐07 64×4=全部で256チャネル


●extras-2層目はストライドで画素数を減らす

 2層目の畳み込みはStride=2で行います。図5‐08のように3×3のカーネルを2画素ずらしながら畳込むのでその結果は10×10画素になります。(*1)

(*1)この層にはプーリングはないが、ストライドを増やすことによって画素数が減る。

図5‐08 カーネルを2個おきに移動させる(横方向、縦方向ともに)


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

 Module02〜07を順番に実行します。上述のようにStride=2であることに注意(Module2参照)。

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


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


最初のページへ



目次へ戻る