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)
次のページへ
目次へ戻る |