E資格対策
🧪 無料学習ツール

CNN出力サイズ電卓 & 畳み込みアニメ
— カーネル・ストライド・パディングを動かして理解

畳み込みの出力サイズ計算は、E資格の計算問題の定番。 スライダーを動かすと式に数値が代入されてライブ計算され、 カーネルが画像の上を滑るアニメで「なぜその式になるのか」が見えます。 複数層を重ねたときのサイズと受容野を計算できるチェーン電卓つき。

左=入力(薄い外周はパディング/青枠はカーネルの位置・濃いマスは dilation で参照する画素)/ 右=出力マップ

🧮 層を重ねる電卓(サイズ&受容野)

× 同サイズ
#種類kspd出力サイズ受容野

⚙️ パラメータ数・乗算回数 ミニ電卓(1つのConv層)

「この畳み込み層の重みは何個?計算量は?」——これも定番の計算テーマです。数値を変えるとライブで再計算されます。

パラメータ数 = k²·Cin·Cout + Cout(バイアス)/ 乗算回数 = k²·Cin·Cout·H·W(H・W=出力サイズ。CNNの解説ページの式と同じ。 Depthwise Separable畳み込みでこれが約 1/Cin + 1/k² に減る話も同ページ参照)

出力サイズの公式(これ1本で全部解ける)

$$O = \left\lfloor \frac{n + 2p - d(k-1) - 1}{s} \right\rfloor + 1$$

  • \(n\):入力サイズ、\(k\):カーネルサイズ、\(s\):ストライド、\(p\):パディング、\(d\):ダイレーション
  • \(d=1\)(通常の畳み込み)のときは、おなじみの \(O = \lfloor (n + 2p - k)/s \rfloor + 1\) に一致します
  • \(d(k-1)+1\) は実効カーネルサイズ——ダイレーションでカーネルが「間をあけて」広がった見かけの大きさです
  • プーリング層も同じ式で計算できます(kをプールサイズとして)
💡 式を丸暗記しないコツ: アニメを見ると分かるとおり、出力サイズとは「カーネルが横に置ける場所の数」です。 パディング込みの幅 \(n+2p\) から実効カーネル幅を引いた残り \(n+2p-d(k-1)-1\) が「滑れる距離」、 それをストライド \(s\) で割って「何歩進めるか」を数え、最初の位置のぶん +1 する—— 式のすべての項に「意味」があります。

受容野(Receptive Field)とは

チェーン電卓の右列に出る受容野は、「その層の出力1マスが、元の入力画像の何×何画素を見ているか」です。 層を重ねるほど・プーリングを挟むほど受容野は広がり、 「深いCNNほど画像の広い範囲の情報を捉えられる」ことが数字で確認できます。 3×3の畳み込みを2回重ねると受容野は5×5——「小さいカーネルを重ねると、大きいカーネル1回と同じ視野をより少ないパラメータで得られる」 というVGGの設計思想も、この電卓で確かめられます。

E資格 練習問題

例題

28×28の入力画像に、カーネルサイズ3、ストライド2、パディング1の畳み込みを適用したとき、出力の空間サイズはどれか(ダイレーションは1とする)。

  1. 13×13
  2. 14×14
  3. 15×15
  4. 28×28
解答と解説を見る

正解:B. 14×14
\(O = \lfloor (28 + 2 \times 1 - 3)/2 \rfloor + 1 = \lfloor 27/2 \rfloor + 1 = 13 + 1 = 14\)。
割り切れないときは床関数(切り捨て)になる点が引っかけどころです。 上の電卓に n=28 は入りませんが(アニメ用に小さくしています)、チェーン電卓に入力すれば同じ計算を確認できます。

CNNの理論(畳み込みの仕組み・im2col・プーリング)は CNNの解説ページで、 PyTorchでの実装読解は E資格コーディング対策コース・レッスン7で深められます。

計算問題は「速く・確実に」得点源へ

E資格の本番形式で確認しましょう。分野別の理論解説と実践問題集を無料で公開しています。

\ 公式LINE・登録無料 /

友だち追加で4大特典をプレゼント中🎁

E資格ミニ模試(全15問)/覚えておくべき数式チェック49本
医療現場の生成AI安全活用ガイド/医療AI用語事典100

📱 友だち追加して特典を受け取る

▶ 特典のくわしい内容を見る