케라스에서 구현한 모델을 학습시키고, 그 결과를 어떻게 저장할지는 https://keras.io/getting-started/faq/#how-can-i-save-a-keras-model 링크를 따라가서 읽어보면 자세히 나와있다.


그런데 이전 글인 케라스(keras) 에서 leaky_relu 쓰기 에서와 같이 활성함수(activation function)을 리키 릴루를 쓰면, 학습된 모델은 저장이 잘 되지만, 불러오기에서 에러가 발생한다. 


에러 메시지를 잘 살펴보면 ValueError: Unknown activation function:leaky_relu 라고 뜨며 리키 릴루가 뭔지 모른다고 한다.


모델 구조만 저장할 때 json 형식으로 저장할 수 있는데, json으로 저장한 모델 구조를 불러올 때도 역시 같은 에러가 뜨니, 모델 구조는 코드 자체로 저장하는 것이 안전하다.


오랜 시간 동안 비싼 자원 들여 학습한 모델은 가중치를 저장하는 것이 안전하다.


-> 핵심 1: 케라스로 만든 모델 구조는 코드로 보관할 것

-> 핵심 2: 케라스로 학습한 모델은 가중치(weight)를 파일로 저장할 것


모델을 코드로 저장했다고 가정하면, 가중치를 저장하는 방법은 아래 처럼 한다.


model.save_weights(filename)


불러올 때는


model.load_weights(filename)

Posted by 공돌이pooh

댓글을 달아 주세요