8-07 vgg-14, 15層目のVHDL化(続き)

●14層目は畳み込みの仕方に注意

 この層の畳み込みはちょっと特殊です。図8‐124のように上下左右に枠を6つ拡げます(padding = 6)。そして9個の係数を同図のように6つ間を空けた画素と掛け合わせます(dilation = 6)。(*1)

(*1)dilation = 6により、入力画素の広い範囲を一つの出力画素に集約できる。

図8-124 画像を広げて間を空けて畳み込み

 図8‐125はパディングで画像を拡げた状態ですが、このように画素を9個づつ読み出して畳み込みに使用します。ラインが飛んでいることを考えると、入力画像を格納するバッファは少なくとも13ラインぶん必要な事が分かります。

図8-125 画素間が開くのでその分メモリが必要

●入力用のバッファを14ラインぶん設けて書きながら読み出し

 図8‐126にラインの読出しシーケンスを示します。例えばバッファ11に書いているときはバッファ12,4,10にある画素を読み出します。この際バッファ10が一番新しいのでnewline、バッファ12は一番古いのでoldlineとします。

図8-126 書き方(Write)と読み方(newline, midline, oldline)の関係

●書き方を追いかけてぐるぐる読み出す

 図8‐127のようにバッファを14ラインぶん設け、ぐるぐる回りながら読み書きします(したがってnewlineは最新、oldlineは最古のラインになる)。このようにして dilation = 6 の畳み込みを行います。

図8‐127 書き方(Write)を追いかける読み方(oldline, midline, newline)


次のページへ



目次へ戻る