이 글에서는 TensorFlow에서 제공하는 기능과 유사하게 Keras 모델에서 각 레이어의 출력을 추출하는 방법을 안내합니다.
문제: CNN(컨벌루션 신경망)을 훈련한 후 이진 분류의 경우 각 레이어의 출력을 얻는 것이 바람직합니다.
답변: Keras는 이를 달성하기 위한 간단한 방법을 제공합니다.
제공된 코드에서 코드 사용자 정의 예:
from keras import backend as K # Define input and layer outputs input = model.input outputs = [layer.output for layer in model.layers] # Create a function to evaluate the output fn = K.function([input, K.learning_phase()], outputs) # Testing test_input = np.random.random(input_shape)[np.newaxis,...] layer_outputs = fn([test_input, 1.]) # Print the layer outputs print(layer_outputs)
참고: K.learning_phase() 인수가 중요합니다. 학습 및 테스트 중에 동작을 변경하는 Dropout 또는 BatchNormalization과 같은 레이어의 경우. Dropout 시뮬레이션 중에는 1로 설정하고 그렇지 않으면 0으로 설정합니다.
최적화: 효율성을 위해 모든 레이어 출력을 평가하기 위해 단일 함수를 사용하는 것이 좋습니다.
fn = K.function([input, K.learning_phase()], outputs) # Testing test_input = np.random.random(input_shape)[np.newaxis,...] layer_outputs = fn([test_input, 1.]) # Print the layer outputs print(layer_outputs)
위 내용은 Keras 모델에서 레이어 출력에 어떻게 접근하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!