[TensorFlow] Global Average Pooling Layer 예제

tf.keras.layers.GlobalAveragePooling2D 레이어는 공간 차원의 정보를 간단한 평균 연산으로 대체하여 모델의 파라미터 수를 줄이는 데 사용되는 레이어입니다. 이미지 분류 문제에 주로 활용되며, 특징 맵의 각 채널별로 평균 값을 계산하여 하나의 벡터로 만듭니다. 아래는 tf.keras.layers.GlobalAveragePooling2D 레이어를 사용한 예제입니다.

import tensorflow as tf

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

## GlobalAveragePooling2D 레이어 정의
global_avgpool_layer = tf.keras.layers.GlobalAveragePooling2D()

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

## GlobalAveragePooling2D 레이어 실행
output = global_avgpool_layer(dummy_input)

print("Input shape:", dummy_input.shape)
print("Output shape:", output.shape)` 

위 예제에서는 tf.keras.layers.GlobalAveragePooling2D 레이어를 사용하여 28x28 크기의 더미 이미지에 대한 레이어를 정의하고 실행합니다.

실행 결과:

Input shape: (1, 28, 28, 3)
Output shape: (1, 3)` 

위에서 확인할 수 있듯이, 입력 이미지의 형태가 (1, 28, 28, 3)이고 출력 데이터의 형태가 (1, 3)임을 확인할 수 있습니다. 각 채널별로 평균 값을 계산하여 3개의 값으로 이루어진 벡터를 출력합니다.

GlobalAveragePooling2D 레이어는 보통 CNN 모델의 마지막 부분에서 사용되어 특징 맵의 공간 정보를 간결하게 요약하여 전역적인 특징을 추출하는 데 활용됩니다.