[TensorFlow] Convolutional Layer 예제

tf.keras.layers.Conv2D 레이어는 2D 합성곱 연산을 수행하는 컨볼루션 레이어입니다. 이미지 처리와 같이 공간 정보를 고려해야 하는 작업에 주로 사용됩니다. 아래는 tf.keras.layers.Conv2D 레이어를 사용한 간단한 예제입니다.

import tensorflow as tf

## 입력 이미지 크기: 28x28 (예시로)
input_shape = (28, 28, 1)

## Conv2D 레이어 정의
conv_layer = tf.keras.layers.Conv2D(filters=32, kernel_size=(3, 3), activation='relu', input_shape=input_shape)

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

## Conv2D 레이어 실행
output = conv_layer(dummy_input)

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

위 예제에서는 tf.keras.layers.Conv2D 레이어를 사용하여 28x28 크기의 더미 이미지에 대한 레이어를 정의하고 실행합니다. 레이어는 filters 매개변수로 필터(커널)의 수를 지정하며, kernel_size로 커널의 크기를 설정합니다. activation으로 활성화 함수를 지정할 수 있습니다.

실행 결과:

Input shape: (1, 28, 28, 1)
Output shape: (1, 26, 26, 32)` 

위에서 확인할 수 있듯이, 입력 이미지의 형태가 (1, 28, 28, 1)이고 출력 이미지의 형태가 (1, 26, 26, 32)임을 확인할 수 있습니다. 출력 이미지의 공간 크기가 입력 이미지의 크기에 비해 줄어들었고, 32개의 필터가 사용되어 32개의 채널이 생성된 것을 볼 수 있습니다.

이러한 컨볼루션 레이어는 이미지의 특징을 추출하는 데 사용되며, 일반적으로 여러 개의 컨볼루션 레이어와 풀링 레이어를 조합하여 심층 컨볼루션 신경망(CNN)을 구축합니다.