본문 바로가기
인공지능/Deep Learning

[Deep Learning] TensorFlow 모델 저장 / 불러오기

by coding_su 2022. 12. 29.

📝딥러닝 텐서플로우 모델 저장하고 불러오는 방법

네트워크와 웨이트를 통으로 저장하고 불러오기

# 폴더구조로 저장
model.save('fashion_mnist_model')

# 저장된 인공지능 불러오기
model2 = tf.keras.models.load_model('fashion_mnist_model')
# 저장된 경로와 파일명을 입력

# 파일 하나로 저장
model.save('fashion_mnist_model.h5')

# 저장된 인공지능 불러오기
model3 = tf.keras.models.load_model('fashion_mnist_model.h5')

 

json 파일로 네트워크만 저장하고 불러오기 ( 현재 to_yaml()은 지원되지 않는다 )

※ 저장한 네트워크로부터 모델을 만들때 주의할점 : 네트워크만 가져온 것이고 학습 완료된 웨이트는 가져온 것이 아니다
 따라서 현재 웨이트는 랜덤으로 셋팅된 웨이트다 이것으로 예측 수행하면 안된다

# 네트워크를 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)

 

웨이트를 저장하고 불러오기

# 웨이트를 저장하기
model.save_weights('fashion_mnist_weight.h5')

# 저장한 웨이트를 모델에 불러오기
model4.load_weights('fashion_mnist_weight.h5')

 

+ 인공지능 만들때 사용한 스케일러나 인코더 저장하고 불러오기 (https://coding-jisu.tistory.com/81)

# 저장하기
joblib.dump(스케일러나 인코더의 변수 .pkl파일명)

# 불러오기
joblib.load( 스케일러나 인코더의 .pkl파일명)

댓글