Altifigence Academy

3 / 24 · 概念

形状、ストライド、パディング、ダイレーション

H=7,R=3,ストライド2,上パディング0,下パディング1,ダイレーション2で、Hoとh=1,r=2の入力座標を計算してください。

形状の計算がアドレスを決める

ストライドは出力ウィンドウの始点間の距離を制御します。ダイレーションは1つのカーネル内のサンプル間の距離を制御します。入力位置を飛ばす添字の項が異なります。RサンプルのカーネルにダイレーションDを使うと、D(R−1)+1位置にまたがります。上下左右のパディングは独立に指定します。この演習は自動的なSAME規約を仮定せず、明示的なパディングと床関数による出力サイズを使います。

Ho=⌊H+Pt+Pb−Dh(R−1)−1Sh⌋+1H_o=\left\lfloor\frac{H+P_t+P_b-D_h(R-1)-1}{S_h}\right\rfloor+1

出力幅には、高さと垂直方向のパラメータを対応する水平方向のものに置き換えます。この教材モデルでは、実効カーネルがパディング済み入力を超える場合、出力位置数をゼロとします。製品の演算子では、空のテンソルを受け入れるかどうかを別に定義する必要があります。

計算例

H=5、R=3、ストライド2、上下パディング1、ダイレーション1では、実効高さは3です。出力高さはfloor((5+2−3)/2)+1=3です。ダイレーションを2にすると実効高さは5、出力高さは2になります。ストライドは同じで、各ウィンドウがより広い領域にまたがります。

出力座標とカーネル座標からih=h×S−Pt+r×Dで入力を求めます。h=1,r=2では、最初の設定は3を読みます。ダイレーションを使う設定は5を読みます。有効な入力座標は0から4なので、座標5は配列外を読むのでなくパディングを供給します。パディングは実数のゼロを表し、生の量子化記憶形式ではそのゼロを非ゼロのコードで表す場合があります。

NCHWの線形アドレスは((nC+c)H+ih)W+iwです。N=1,C=2,H=W=3なら、座標(0,1,2,1)は18要素テンソルの16に対応します。これは第2チャネルの最終行の中央サンプルです。チャネル軸と空間軸を入れ替えても要素数は同じですが、計算は変わります。

Gグループでは、入力・出力チャネル数の両方がGで割り切れる必要があります。各出力はそのグループのC/G入力チャネルを縮約します。出力サイズの計算、アドレス生成、全入力境界の検査の順に進めます。ONNX Convの公式仕様に対応する明示的なパディング、ストライド、ダイレーション、グループの属性が定義されています。

自分で考えてみましょう

H=7,R=3,ストライド2,上パディング0,下パディング1,ダイレーション2で、Hoとh=1,r=2の入力座標を計算してください。

解説を見る

実効カーネル高さは5です。Ho=floor((7+1−5)/2)+1=2です。入力座標は1×2+2×2=6で、最後の有効行です。

選択はこのブラウザに適用されます。フッターからいつでも変更できます。