8-03 3層目は乗算器128個で4回に分けて計算
●3層目は入力画像の大きさが1/4になり、出力チャネルが倍になる
前章、畳み込み2層目では乗算器256個(ビットシフト乗算)を並列動作させ、出力画像16チャネルぶん処理するのに7,056サイクルかかりました。
畳み込み3層目は入力の画素数が"14x14"と2層目の4分の1になります。その代わり図8-50のように、出力のチャネル数が"32"と2層目の2倍になります。 |
図8-50 畳み込み3層目の演算のイメージ
●3層目も2層目と同じサイクル数で処理させたい
2層目に比べて入力の画素数が1/4になるため、出力を1枚計算するサイクル数は1/4、すなわち1,764になります。その代わり出力が32枚と倍になっていることを鑑みて8枚づつ、4回に分けて計算させます。合計サイクル数は1764x4 = 7,056となり、2層目と同じサイクル数で終わらせることができます。乗算器(ビットシフト乗算)の数は128個と2層目の半分で済みます。 |
図8-51 畳み込み3層目の係数とバイアス(conv_layer3.xlsm)
●3層目も係数は2の累乗なのでビットシフトで乗算が出来る
図8-51はconv_layer3.xlsmのシートW3_Biasです。2層目と同様、3層目も係数は4種類(-64, -16, +16, +64)に限定されます。入力チャネル数が16なので9×16=144列、出力チャネル数が32なので32列、バイアスも32個になります。 |
目次へ戻る |