반응형
딥러닝 모델을 사용하려면 매번 계속 몇 시간 동안 학습시켜야 되는지 궁금할 것입니다.
딥러닝 모델을 학습시킨다는 의미는 딥러닝 모델이 가지고 있는 뉴런들의 가중치를 조정하는 것을 의미합니다.
그러므로, 우리는 모델 구성과 가중치를 저장만 해놓으면, 필요할 때 언제든 저장한 모델의 구성과 가중치를 불러와서 사용할 수 있습니다.
개요
- 학습 모델(아키텍처, 가중치) 저장하기
- 저장한 모델 불러오기
- 모델 형태 보기
- 학습 모델 가중치만 저장하기
(1) 학습 모델 저장하기 ( model.save("*****.h5") )
- 모델은 크게 모델 '아키텍처'와 모델 '가중치'로 구성됩니다.
- 아키텍처는 모델이 어떤 층으로 어떻게 쌓여있는지에 대한 모델 구성이 정의되어 있습니다.
- 가중치(weights)는 처음에는 임의의 값으로 초기화되어 있지만, 훈련셋으로 학습하면서 갱신됩니다.
from keras.models import load_model
model.save('mnist_mlp_model.h5')
매우 간단하다.
파일명의 확장자를 h5로 해주고 실행시키면 실행 중인 파일과 동일한 폴더 안에 저장되는 것을 확인할 수 있습니다.
저장된 파일에 다음의 정보가 저장되어 있다.
나중에 모델을 재구성하기 위한 모델의 구성 정보
모델을 구성하는 각 뉴런들의 가중치
손실 함수, 최적화 등의 학습 설정
재학습을 할 수 있도록 마지막 학습 상태
(2) 모델 불러오기 ( load_model("***.h5") )
from keras.models import load_model
model2 = load_model('mnist_mlp_model.h5')
모델 불러오는 함수를 이용하여 앞서 저장한 모델 파일로부터 모델을 재형성한다.
(3) 모델 형태(아키텍처) 보기
(3-1) 출력 텍스트로 확인하기
model.summary()
(3-2) 그래프로 확인하기
from IPython.display import SVG
from keras.utils.vis_utils import model_to_dot
%matplotlib inline
SVG(model_to_dot(model, show_shapes=True, dpi=65).create(prog='dot', format='svg'))
dpi 값을 통해 그래프의 크기를 조절할 수 있습니다.
저는 jupyter notebook을 이용했는데 SVG를 사용하기 위해서 pydot, graphviz 모듈 설치가 필요합니다.
# pydot 설치 (2가지 방법)
pip install pydot
conda install pydot
# graphviz 설치
pip install graphviz
conda install graphviz
(4) 모델의 가중치만 따로 저장하기 ( model.save_weights("***.h5") )
# 가중치 저장하기
model.save_weights('mnist_mlp_weights.h5')
# 가중치 불러오기
new_model.load_weights("mnist_mlp_weights.h5)
[python] 파이썬 pickle 파일로 저장 및 불러오기 / dump, load
[딥러닝] 모델 성능 최적화하기 (배치정규화, 드롭아웃, 조기종료)
반응형
'AI > Deep Learning' 카테고리의 다른 글
합성곱 신경망(CNN) - 합성곱층, 폴링층, 스트라이드, 커널,필터 알아보기 (0) | 2022.06.28 |
---|---|
[딥러닝] 모델 성능 최적화하기 (배치정규화, 드롭아웃, 조기종료) (0) | 2022.06.21 |
[딥러닝] RNN 순환신경만이란, (0) | 2022.06.20 |