합성곱 살펴보기
합성곱 레이어의 activation을 들여다보는 건 정말 흥미로운 작업이에요. 학습을 하신다면 한 번쯤 꼭 해 보셔야 해요!
이를 위해 Keras의 Model 객체를 사용해 새로운 모델을 만들 거예요. 이 객체는 입력 리스트와 출력 리스트를 받습니다. 이 새 모델에 제공할 출력은, MNIST 숫자 이미지를 입력으로 주었을 때 첫 번째 합성곱 레이어의 출력입니다.
이전 연습 문제에서 만든 합성곱 model은 이미 학습되어 있어요. 이제 MNIST 손글씨 이미지를 올바르게 분류할 수 있습니다. 콘솔에서 model.summary()로 확인해 보세요.
이 모델의 첫 번째 합성곱 레이어에서 학습된 합성곱 마스크를 함께 살펴보겠습니다!
이 연습은 강의의 일부입니다
Keras로 시작하는 딥 러닝
연습 안내
- 모델에서 첫 번째 합성곱 레이어의 출력을 가리키는 참조를 얻으세요.
- 모델의 첫 레이어 입력과
first_layer_output을 출력으로 사용하여 새 모델을 만드세요. - 이
first_layer_model로X_test에 대해 예측하세요. X_test의 첫 번째 숫자에 대한 activation을 15번째와 18번째 뉴런 필터에 대해 시각화하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Obtain a reference to the outputs of the first layer
first_layer_output = model.layers[____].output
# Build a model using the model's input and the first layer output
first_layer_model = Model(inputs = model.layers[0].input, outputs = ____)
# Use this model to predict on X_test
activations = ____.____(____)
# Plot the activations of first digit of X_test for the 15th filter
axs[0].matshow(activations[____,:,:,14], cmap = 'viridis')
# Do the same but for the 18th filter now
axs[1].matshow(activations[0,:,:,____], cmap = 'viridis')
plt.show()