keras-함수형 API


💡 함수형 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)