0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kaggle初心者に送るAdvent Calendar 2024

Day 17

kaggle tutorial computer vision part 3

Last updated at Posted at 2024-12-17

の解説です。Maximum Pooling はある画像にフィルターをかける操作と考えることができます。

__results___5_0.png

(実例:この場合は輪郭を強調)

縦の輪郭、横の輪郭、斜め線部分・・・と強調したい部分を変えることができます。
実際にはどのようなフィルターをかけるとその後にデータ処理がうまくいきやすいでしょうか?これの答えはたくさん考えられますが、実際のところフィルターは人間が設定するものではなく、分類の結果の誤差から逆算されます。

一応、コード部分の解説を行なっておくと、
TensorFlow を使って画像にプーリング処理を施し、その結果を Matplotlib を使って表示するコード


import tensorflow as tf

image_condense = tf.nn.pool(
    input=image_detect, # image in the Detect step above
    window_shape=(2, 2),
    pooling_type='MAX',
    # we'll see what these do in the next lesson!
    strides=(2, 2),
    padding='SAME',
)

plt.figure(figsize=(6, 6))
plt.imshow(tf.squeeze(image_condense))
plt.axis('off')
plt.show();
  • window_shape=(2, 2): プーリングウィンドウのサイズを (2, 2) (高さ2、幅2) に設定します。これは、2x2 の領域ごとに処理を行うことを意味します。

  • pooling_type='MAX': 最大値プーリング (Max Pooling) を宣言。これは、ウィンドウ内の最大値を出力として採用する方法です。他にも平均値プーリング (Average Pooling) などあります。

  • strides=(2, 2): ストライドを (2, 2) に設定。これは、ウィンドウを2ピクセルずつ縦横にずらしながら処理することを意味しています。
    padding='SAME': パディングを "SAME" に設定。これは、出力のサイズが入力のサイズと (ストライドを考慮して) できるだけ近くなるように、入力の周囲にゼロパディングを追加するものです。一応その後の処理のためにつけています。

このtutirialでは最終的に畳み込みニューラルネットワーク (CNN) の実装を行います。 CNN では、畳み込み層とプーリング層を組み合わせて、画像の特徴を抽出し、分類などのタスクを実行します。ここでプーリング層の説明を行なっているわけですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?