4-04 vgg-5, 6, 7層目のEXCEL化

●前層と比べて5,6,7層目は入力画素数が1/4、出力チャネル数が2倍

 vgg-4層目のプーリング(ブロック図の左から2番目の"P")が終わると次は5,6,7層目になります。ブロック図にあるようにこれらの層は入力画素数が
75×75、出力チャネル数は256になります。

●下表から各層のファイルをダウンロード

 各層の
EXCELファイルを下の表からダウンロードして開きましょう。

・シートは重み係数だけで、その種類は同表のように制限されています。
・入力画像がないので
入力CSVをコピーしてVBAを順番に実行していきます。
・シート数節約のために1枚のシートに複数チャネルぶん置きます(inChxx, im2colxx等)。
・75行全部計算させると時間がかかるので最初の4行のみ計算。
・256チャネル全部計算させると時間がかかるので最初の4チャネルのみ計算。
・EXCELで計算した出力とPython(
出力CSV)を比較します。
・最後の層だけはプーリングがあります。

表4‐04 クリックしてダウンロード
EXCELファイル 入力CSV 出力CSV 係数の種類 プーリング
SSD_layer05.xlsm lay4out.zip lay5out.zip 8種(±1,2,4,8) なし
SSD_layer06.xlsm lay5out.zip lay6out.zip 8種(±1,2,4,8) なし
SSD_layer07.xlsm lay6out.zip lay7out.zip 8種(±1,2,4,8) あり

●5層目の重み係数シート

 図4‐35はSSD_layer05.xlm(5層目のEXCEL)のW5_Bias(重み係数シート)です。このように係数は8種類(-8, -4, -2, -1, +1, +2, +4, +8)に制限されています(*1)。またこの層は入力が128チャネルあるので128x9 = 1152行(*2)、出力が256チャネルあるので256列あります。


(*1)2の累乗なのでビットシフトで乗算できる(乗算器の節約)
(*2)6、7層目は入力チャネルが256あるので重み係数シートは256x9 = 2304行になる。


図4‐35 5層目のEXCELファイル


●7層目の出力の答え合わせ

 図4‐36はModule07の実行結果(Pool002シート)とPythonで計算した7層目のチャネル2(lay7out_002.csv)を比較しています(上の表からダウンロード)。各チャネル
ピタリ一致することを確認します(*3,4)。5層目、6層目も同様に確認します。

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


図4‐36 7層目チャネル2の計算結果(EXCELとPython)


●各行、各列の最後に0を付け加えてからプーリング

 7層目のプーリングは75×75を38×38にするものなのでoutChxxシートに1列、1行付け加え(値はすべて0とする)、76×76にしてから間引きを行います。


目次へ戻る