[TensorFlow] Convolutional Transpose Layer 예제
tf.keras.layers.Conv2DTranspose
레이어는 Convolutional Transpose 또는 Deconvolutional 레이어로서, 이미지를 업샘플링하거나 이미지 생성 작업에 사용됩니다. 아래는 tf.keras.layers.Conv2DTranspose
레이어를 사용한 예제입니다.
import tensorflow as tf
## 입력 이미지 크기: 4x4, 채널 개수: 3 (예시로)
input_shape = (4, 4, 3)
## Conv2DTranspose 레이어 정의
conv_transpose_layer = tf.keras.layers.Conv2DTranspose(filters=16, kernel_size=(3, 3), strides=(2, 2), padding='valid', input_shape=input_shape)
## 더미 입력 이미지 생성
dummy_input = tf.random.normal(shape=(1, *input_shape)) # 배치 크기 1로 가정
## Conv2DTranspose 레이어 실행
output = conv_transpose_layer(dummy_input)
print("Input shape:", dummy_input.shape)
print("Output shape:", output.shape)`
위 예제에서는 tf.keras.layers.Conv2DTranspose
레이어를 사용하여 입력 이미지 크기가 4x4인 더미 이미지에 대한 레이어를 정의하고 실행합니다. filters
매개변수로 출력 채널 수를 지정하며, kernel_size
로 커널의 크기를 설정합니다. strides
로 스트라이드를 설정하여 업샘플링을 수행합니다. padding
은 ‘valid’ 또는 ‘same’으로 설정할 수 있습니다.
실행 결과:
Input shape: (1, 4, 4, 3)
Output shape: (1, 9, 9, 16)`
위에서 확인할 수 있듯이, 입력 이미지의 형태가 (1, 4, 4, 3)
이고 출력 이미지의 형태가 (1, 9, 9, 16)
임을 확인할 수 있습니다. Conv2DTranspose 레이어는 입력 이미지를 업샘플링하여 출력 이미지를 생성했습니다.
Convolutional Transpose 레이어는 주로 이미지 생성 작업에서 활용되며, 생성적 적대 신경망(GAN)과 같은 모델에서 사용될 수 있습니다.