5-01 extras-1, 2層目のEXCEL化
●extras-1層目のEXCELを開く
このブロック図の左中段にextras1〜8と呼ばれる畳み込み層があります。まずはその1層目をEXCEL化します。これをダウンロードして開きます。
シートは1つ(exW1_Bias)だけで、これは重み係数のシートです(図5‐01)。入力は1024チャネルありますが、カーネルが1x1=1なので1024行、出力は256チャネルあるので256列あります。
係数は-8, -4, -2, -1, +1, +2, +4, +8の8種類に制限しています。全て2の累乗なのでビットシフトで乗算を達成できます(乗算器の節約になる)。またこの層もバイアスは省略するのでありません。 |
図5-01 extras-1層目の係数。カーネルが1×1であることに注意
●64枚のシートに入力1024チャネル
VBAのModule1を実行すると、lay15out_000.csv〜lay15out_1023.csv(15層目の出力、これを解凍して同じディレクトリに置く)が新しいシートに転写され、それら(inCh00〜inCh63)がextra-1層目の入力になります(図5-02)。
この層の入力は1024チャネルですが、生成されるシートは64枚、すなわち1枚のシートに16チャネルぶんの画像が張り付けられています(*1)。15層目の出力は19×19なので19列、各シート16チャネルぶんあるので19x16=304行になります。
(*1)シート数があまりにも多いとEXCELが重くなり、パソコンのメモリを圧迫するのでシート数を節約する。 |
図5‐02 64×16=全部で1024チャネル
●im2colxxシートも64枚に1024チャネルぶん
Module02を実行するとim2col00〜63が生成されます(図5‐03)。カーネルは1×1、各シート16チャネルぶんあるので1×16=16列、行数は19×4=76行になります。(*2)
(*2)19×19の画像の上4行のみ計算させる。 |
図5‐03 各シート76行×16列になる
●extras-1層目の出力の答え合わせ
extras層もvgg層と同じようにModule03〜07を順番に実行して、行列乗算→加算→下位ビット切り捨て→ReLuと演算を進めます。
図5‐04はoutCh000シートとex1out_000.csv(Pythonで計算したextras-1層目のチャネル0)を比較しています(これを解凍して開く)。出力は256チャネルあり、それぞれピタリ一致することを確認します。(*3、4)
(*3)EXCELでは4行のみ計算(19行全部だと時間がかかるので)。5行目以下を計算させるにはここを参考。
(*4)EXCELではoutCh000〜003まで計算。outCh004以降を計算させるにはここを参考。 |
図5‐04 EXCEL化してもPythonの結果と変わらない
次のページへ
目次へ戻る |