728x90
여러번의 시도를 통하여 좋은 정확도를 가진 머신을 개발하였다면 그 모델을 저장하여,
같은 성능으로 다른곳에서도 사용할 수 있다.
모델의 저장법과 그 모델을 다시 불러오는 방법이다.
1. 전체 모델과 weight를 통으로 h5파일로 저장 하고 불러오는 방법.
1
2
3
4
5
6
7
8
9
|
#pip install h5py
import h5py
model.save('파일명.h5') ## 저장방법
new_model = tensorflow.keras.models.load_model('파일명.h5')
|
cs |
2. 전체 모델과 웨이트를 폴더구조로 통째로 편하게 처리(따로 컴파일 필요없다.)
1
2
3
4
5
6
7
8
9
|
#폴더로 생성된다. 원하는 폴더명 입력, 폴더안에 파일들과 같이 생성됨.
model.save('폴더명') ## 저장방법
new_model = tensorflow.keras.models.load_model('폴더명')
|
cs |
3. 네트워크의 구조(모델) 만 저장하고 불러오기
1
2
3
4
5
6
7
8
9
10
11
12
13
|
from keras.models import model_from_json
#저장할때
model_json = model.to_json() # 제이슨으로 저장하기 위해 제이슨으로 바꿈
with open('fashion_model.json','w') as json_file :
json_file.write(model_json)
#불러올때
with open('fashion_model.json','r') as json_file :
model_json = json_file.read()
model = model_from_json(model_json)
|
cs |
4.네트워크의 weight(가중치)를 저장하고 불러오기 : 이때는 컴파일을 꼭 해줘야 사용가능
1
2
3
4
5
6
7
8
9
10
11
12
|
#저장할때
model.save_weights('파일명.h5')
#불러올때
model.load_weights('파일명.h5) ## 경로 다 써야함.
#모델과 웨이트 따로 가져왔을때 compile 꼭 해줘야함.
|
cs |
5.스케일러 등을 저장하고 불러오기
(joblib 이용)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import joblib
import pickle
#스케일러
#저장하기
joblib.dump( sc_x , '저장할파일명.pkl' ) ## sc_x = MinMaxScaler() 로 작업되어있다.sc_x 를 써서 모델이 작업되었다.
#불러오기
= joblib.load( '저장된파일명.pkl')
|
cs |
'IT 프로그래밍 관련 > 딥러닝' 카테고리의 다른 글
learning_curve 함수 설정 (0) | 2021.03.04 |
---|---|
epoch마다 기록을 남기는 CSVLogger (0) | 2021.03.04 |
epoch마다 가장 좋은 모델을 저장하는 ModelCheckpoint (0) | 2021.03.04 |
Fine Tuning 코드 진행 (0) | 2021.03.04 |
Transfer Learning을 위한 코드와 설명 (0) | 2021.03.04 |
댓글