[TensorFlow] RepeatVector Layer 예제

tf.keras.layers.RepeatVector 레이어는 입력을 반복하여 출력하는 레이어로, 주로 Seq2Seq 모델 등에서 사용됩니다. 입력을 반복하여 출력으로 만들어주므로, 입력의 형태와 출력의 형태가 다르게 됩니다. 아래는 tf.keras.layers.RepeatVector 레이어를 사용한 예제입니다.

import tensorflow as tf

## 입력 시퀀스 길이와 특성 차원 (예시로)
sequence_length = 10
feature_dim = 5

## RepeatVector 레이어 정의
repeat_layer = tf.keras.layers.RepeatVector(n=3)  # 출력 시퀀스 길이를 3으로 설정

## 더미 입력 시퀀스 생성
dummy_input = tf.random.normal(shape=(1, sequence_length, feature_dim))  # 배치 크기 1로 가정

## RepeatVector 레이어 실행
output = repeat_layer(dummy_input)

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

위 예제에서는 tf.keras.layers.RepeatVector 레이어를 사용하여 길이가 10인 시퀀스에 대한 레이어를 정의하고 실행합니다. n 매개변수로 출력 시퀀스 길이를 설정합니다.

실행 결과:

Input shape: (1, 10, 5)
Output shape: (1, 3, 10, 5)` 

위에서 확인할 수 있듯이, 입력 시퀀스의 형태가 (1, 10, 5)이고 출력 시퀀스의 형태가 (1, 3, 10, 5)임을 확인할 수 있습니다. RepeatVector 레이어는 입력 시퀀스를 3번 반복하여 출력 시퀀스를 생성했습니다.

Seq2Seq 모델에서 인코더의 마지막 상태를 디코더의 각 타임 스텝에 반복하여 입력으로 사용하는 등의 상황에서 사용됩니다.