keras-함수형 API
in Deep Learning on CNN
💡 함수형 API
Sequential 클래스는 층을 차례대로 쌓은 모델을 만든다. 이 클래스는 층을
차례대로 쌓은 모델을 만든다. 그러나 딥러닝에서는 좀 더 복잡한 모델이 많이 있다.
예를 들어 입력이 2개일 수도 있고 출력이 2개일 수도 있다.
이런 경우에 Sequential 클래스를 사용하기 어렵다. 대신 함수형 API를 사용한다.
inputs = keras.layers.Input(shape=(784,))
# dense1층에 입력값 inputs를 통과시킨다.
hidden = dense1(inputs)
# 출력층
outputs = dense2(hidden)
model = keras.Model(inputs,outputs)
마치 체인처럼 입력에서 출력까지 연결하고 마지막에 Model 클래스에 입력과 출력을
지정하여 모데을 만든다. 이렇게 모델을 만들 경우 중간에 다양한 형태로 층을 연결할
수 있다.
모델 불러오기
model = keras.models.load_model('best-cnn-model.h5')
model.layers
아래와 같이 InputLayer와 첫 번째 Conv2D층을 뽑아서 새로운 모델을 만들었을 때
predict 메서드를 호출하면 Conv2D의 출력을 반환해준다.
결과적으로 conv_acti로 다양한 입력을 통해 다양한 결과를 볼 수 있다.
conv_acti = keras.Model(model.input, model.layers[0].output)