Altifigence Academy

1 / 24 · 概念

推論と学習

出力チャネルだけを3から6に増やすと、MAC数と保存するバイアス数はどう変わりますか。

データパスの前に計算を定義する

推論は、事前に選んだ固定の重みを入力に適用する順伝播です。学習ではさらに損失を計算し、勾配を伝播し、重みを更新します。したがって、順方向の畳み込みを行う回路は推論演算を示しますが、それだけで学習を示すわけではありません。このコースでは小さな整数推論経路を作ります。勾配ハードウェア、最適化器、分類精度、自動モデルインポートは演習の範囲外です。

バッチN、入力チャネルC、空間寸法HとW、出力チャネルM、カーネルR×Sについて契約を書きます。順序はNCHWを使います。一般的な出力要素はC×R×S個の積を累積します。出力形状がN×M×Ho×Woなら、MAC数はN×M×Ho×Wo×C×R×Sです。ここでは1 MACを1回の乗算と累積とします。浮動小数点演算数の報告では乗算と加算を別に数える場合があるため、比較前に数え方を示します。

計算例

N=1、C=2、H=W=5、M=3、3×3カーネル、ストライド1、パディングなしとします。空間出力は3×3です。出力要素は27個で、各要素は18個の積を累積し、合計486 MACです。バイアスベクトルに保存する数は出力チャネルごとに1つ、計3個ですが、バイアスは27か所の出力に加えます。MACの定義を黙って変えず、この加算は別に報告してください。

順序も正しさの一部です。チャネル優先で入力を読んでいるのに、重みを空間優先として解釈すると、すべての値が合法でも誤ったオペランドを組み合わせます。参照出力にはチャネルと空間座標の両方を付けます。1バッチから始め、各テンソルファイルを指定し、基本契約が安定してからバッチ次元を拡張します。

受け入れる形状、ストライド、パディング、数値範囲を記録します。未対応の要求は明示的に拒否してください。柔軟なソフトウェア配列は、RTLがすべてのサイズを扱える証拠ではありません。同様に参照出力から周波数、電力、モデル精度は測れません。後の演習では、正確な値と、仮定を明示したサイクル見積もりを区別します。学習の順伝播、逆伝播、更新の段階はPyTorchの公式チュートリアルを参照してください。

自分で考えてみましょう

出力チャネルだけを3から6に増やすと、MAC数と保存するバイアス数はどう変わりますか。

解説を見る

出力は54個で、54×18=972 MACです。バイアスは6個保存します。入力サイズは同じで、重みの記憶量は2倍になります。

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