728x90
https://hyunsungstory.tistory.com/161
위 게시글과 똑같은 데이터셋을 이용하여
모델링 과정 이후에 모델을 저장하고 불러오는 방법들에 대해 설명하겠습니다.
1. 전체 네트워크와 웨이트를 통으로 저장하고 불러오기
- 폴더 구조로 저장,불러오기
# 폴더 구조로 저장.
model.save('fashion_mnist_model')
# 저장된 인공지능을 불러오는 코드.
model2 = tf.keras.models.load_model('fashion_mnist_model')
model2.evaluate(X_test,y_test)
정상 작동 확인
- 모델을 파일 하나로 저장, 불러오기
model.save('fashion_mnist_model.h5')
model3=tf.keras.models.load_model('fashion_mnist_model.h5')
model3.predict(X_test)
2. 네트워크와 웨이트를 따로 저장하고 불러오기.
- 네트워크만 저장하고 불러오기
model.to_json()
# 네트워크를 json 파일로 저장하는 코드
fashion_mnist_network=model.to_json()
with open('fashion_mnist_network.json' , 'w') as file :
file.write(fashion_mnist_network)
# 저장된 네트워크를 읽어오는 코드
with open('fashion_mnist_network.json','r') as file:
fashion_net = file.read()
# 위의 네트워크로부터 모델을 만들고싶으면
model4=tf.keras.models.model_from_json(fashion_net)
# model4는 네트워크만 가져온 것이지,,, 학습 완료된 웨이트는 가져온 것이 아니다
# 따라서 현재 웨이트는 랜덤으로 셋팅된 웨이트다.
# 이것으로 예측 수행하면 안된다.
- 웨이트를 저장하고 불러오기
# 웨이트를 저장하고 불러오는 코드
model.save_weights('fashion_mnist_weight.h5')
이후 위에서 만들 model4에 웨이트를 집어넣는 방법
model4.load_weights('fashion_mnist_weight.h5')
model4.predict(X_test)
정상 작동하는 것을 확인할 수 있다.
'인공지능 > 딥러닝' 카테고리의 다른 글
CNN의 convolution,Stride,Padding,Pooling / feature map의 사이즈를 구하는 공식 (0) | 2022.12.29 |
---|---|
딥러닝 : 레이블링된 y값을 원핫 인코딩으로 바꾸기 tf.keras.utils.to_categorical() / Mnist 손글씨 숫자 예측 (0) | 2022.12.29 |
딥러닝 : Flatten()라이브러리 없이 이미지를 평탄화 하는 방법과 Validation_data= 파라미터 사용법 (0) | 2022.12.29 |
딥러닝 : Tensorflow의 콜백클래스를 이용해서 원하는 조건이 되면 학습을 멈추게 하기 (0) | 2022.12.29 |
딥러닝 : epochs의 횟수를 늘렸을 때 학습데이터/밸리데이션 데이터와 OverFitting (0) | 2022.12.29 |