Skip to the content.

G検定トップ > CNN全体のサイズ遷移まとめ(入力→出力)

まず結論

  • CNNは層ごとに「空間サイズ」と「チャネル数」がどう変わるかを見る
  • 計算問題では

    • Conv:サイズ計算あり/パラメータあり
    • Pooling:サイズ計算あり/パラメータなし
  • 流れで追えると計算ミスが激減する

CNNで見るべき2つの軸

CNNの各層では、次の2点だけを追います。

  1. 空間サイズ(縦×横)
  2. チャネル数(depth)

👉 この2つ以外は見ない


典型的なCNN構成

入力画像
  ↓ Conv
  ↓ Pooling
  ↓ Conv
  ↓ Pooling
  ↓ Flatten
  ↓ 全結合層
  ↓ 出力

サイズ遷移の具体例

入力

  • 画像サイズ:32 × 32
  • チャネル数:3(RGB)

① 畳み込み層(Conv)

  • カーネル:3 × 3
  • パディング:1
  • ストライド:1
  • 出力チャネル:16

空間サイズ

(32 + 2×1 − 3) ÷ 1 + 1 = 32

👉 32 × 32(変わらない)

チャネル数

  • 16 に増える

② Pooling層

  • プーリング:2 × 2
  • ストライド:2

空間サイズ

(32 − 2) ÷ 2 + 1 = 16

👉 16 × 16

チャネル数

  • 変わらない(16)

③ 畳み込み層(Conv)

  • 出力チャネル:32
  • その他条件は同じ

空間サイズ

  • 16 × 16(維持)

チャネル数

  • 32 に増える

④ Pooling層

  • 2 × 2, ストライド2

👉 8 × 8 × 32


⑤ Flatten

8 × 8 × 32 = 2048

👉 1次元ベクトルに変換


⑥ 全結合層(FC)

  • 入力:2048
  • 出力:10

👉 10クラス分類


よくある計算ミス(G検定)

  • ❌ Poolingでチャネル数を減らす
  • ❌ Convで空間サイズが必ず減ると思う
  • ❌ Flatten前のサイズを間違える

超短縮チェック手順(試験中)

  1. 今のサイズを書く(H×W×C)
  2. Conv → サイズ計算+C変更
  3. Pooling → サイズ計算のみ
  4. Flatten → 掛け算

まとめ(試験直前用)

  • CNNは H×W×C を追うだけ
  • Conv:Cが変わる
  • Pooling:Cは変わらない
  • Flattenで一気に1次元

👉 次は CNN計算とTransformerの対比 に進むと差が明確になる

🔗 関連記事


🏠 G検トップに戻る