RNN 레이어 쌓기
최신 성능을 내기 위해서는 수십에서 수백 개의 레이어로 구성된 Deep RNN 모델을 사용하기도 해요.
이번 연습에서는 여러 개의 LSTM 셀 레이어를 차례대로 쌓아 깊은 RNN 모델을 만드는 방법을 간단히 살펴보겠습니다.
이를 위해 처음 두 개의 LSTM 레이어에는 return_sequences 인수를 True로 설정하고, 마지막 LSTM 레이어에는 False로 설정하세요.
레이어를 더 많이 추가해 더 깊은 모델을 만들려면, 레이어를 계속해서 순차적으로 추가하거나, 루프 안에서 .add() 메서드를 사용해 적은 코드로 여러 레이어를 추가하는 함수를 만들 수도 있어요.
이 연습은 강의의 일부입니다
Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)
연습 안내
LSTM레이어를 임포트하세요.- 처음 두 레이어에서는 시퀀스를 반환하고, 마지막
LSTM레이어에서는 시퀀스를 반환하지 않도록 하세요. - 사전 학습된 가중치를 로드하세요.
- 얻은 loss와 accuracy를 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Import the LSTM layer
from tensorflow.keras.layers import ____
# Build model
model = Sequential()
model.add(LSTM(units=128, input_shape=(None, 1), return_sequences=____))
model.add(LSTM(units=128, return_sequences=____))
model.add(LSTM(units=128, return_sequences=____))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Load pre-trained weights
model.____('lstm_stack_model_weights.h5')
____("Loss: %0.04f\nAccuracy: %0.04f" % tuple(model.evaluate(X_test, y_test, verbose=0)))