데이터를 더 늘려야 할까요?
이제 여러분이 만든 digits 데이터셋용 model이 더 많은 학습 예시에서 이점을 얻는지 확인해 볼 차례예요!
코드를 최소화하기 위해 여러 요소가 이미 초기화되어 준비되어 있어요:
- 방금 구성한
model. X_train,y_train,X_test,y_test.model.get_weights()로 저장해 둔 모델의initial_weights.- 미리 정의된 학습 크기 목록:
training_sizes. - 손실을 모니터링하는 미리 정의된 조기 종료 콜백:
early_stop. - 평가 결과를 저장할 빈 리스트 두 개:
train_accs와test_accs.
서로 다른 학습 크기에서 모델을 학습시키고, X_test에서 결과를 평가하세요.
마지막으로 plot_results()로 결과를 시각화해 마무리하세요.
이 연습 문제의 전체 코드는 슬라이드에서 확인할 수 있어요!
이 연습은 강의의 일부입니다
Keras로 시작하는 딥 러닝
연습 안내
- 반복문에서 현재 평가 중인
size에 따라 학습 데이터의 일부를 가져오세요. set_weights()로 모델 가중치를initial_weights로 설정하고, 해당 학습 데이터 일부로 모델을 학습시키되 콜백으로early_stop을 사용하세요.- 학습 데이터 일부와 테스트 세트에 대한 정확도를 평가해 저장하세요.
- 각 학습 크기에 대한 학습/테스트 정확도를 전달해
plot_results()를 호출하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
for size in training_sizes:
# Get a fraction of training data (we only care about the training data)
X_train_frac, y_train_frac = X_train[:size], y_train[:size]
# Reset the model to the initial weights and train it on the new training data fraction
model.set_weights(____)
model.fit(X_train_frac, y_train_frac, epochs = 50, callbacks = [early_stop])
# Evaluate and store both: the training data fraction and the complete test set results
train_accs.append(model.evaluate(____, ____)[1])
test_accs.append(model.evaluate(____, ____)[1])
# Plot train vs test accuracies
plot_results(____, ____)