[TensorFlow] Pooling Layer 예제

tf.keras.layers.MaxPooling2Dtf.keras.layers.AveragePooling2D 레이어는 이미지의 공간 해상도를 줄이는 데 사용되는 레이어입니다. 각각 최대 풀링과 평균 풀링을 수행합니다. 아래는 두 레이어를 사용한 간단한 예제입니다.

import tensorflow as tf

## 입력 이미지 크기: 6x6, 채널 개수: 3 (예시로)
input_shape = (6, 6, 3)

## MaxPooling2D 레이어 정의
maxpool_layer = tf.keras.layers.MaxPooling2D(pool_size=(2, 2))

## AveragePooling2D 레이어 정의
avgpool_layer = tf.keras.layers.AveragePooling2D(pool_size=(2, 2))

## 더미 입력 이미지 생성
dummy_input = tf.random.normal(shape=(1, *input_shape))  # 배치 크기 1로 가정

## MaxPooling2D 레이어 실행
maxpool_output = maxpool_layer(dummy_input)

## AveragePooling2D 레이어 실행
avgpool_output = avgpool_layer(dummy_input)

print("Input shape:", dummy_input.shape)
print("MaxPooling output shape:", maxpool_output.shape)
print("AveragePooling output shape:", avgpool_output.shape)` 

위 예제에서는 tf.keras.layers.MaxPooling2Dtf.keras.layers.AveragePooling2D 레이어를 사용하여 입력 이미지 크기가 6x6인 더미 이미지에 대한 레이어를 정의하고 실행합니다. pool_size 매개변수로 풀링 영역의 크기를 설정합니다.

실행 결과:

Input shape: (1, 6, 6, 3)
MaxPooling output shape: (1, 3, 3, 3)
AveragePooling output shape: (1, 3, 3, 3)` 

위에서 확인할 수 있듯이, 입력 이미지의 형태가 (1, 6, 6, 3)이며 최대 풀링과 평균 풀링의 출력 이미지 형태가 모두 (1, 3, 3, 3)임을 확인할 수 있습니다.

풀링 레이어는 주로 이미지 처리에서 사용되며, 공간 차원을 줄이고 특징을 추출하는 데 활용됩니다.