TensorFlow

TensorFlow - 모델을 저장하고 불러오는 방법 (2) (통째로 저장하고 불러오기 / 아키텍처와 가중치 따로 저장하고 불러오기)

Cong_S 2022. 6. 14. 11:45

이번엔 아키텍처 따로, 가중치 따로 저장하고 불러오는 방법을 알아보자.

먼저 아키텍처만 저장하고 불러오는 방법이다. 

json 파일을 이용한다.

 

# 1. 먼저 변수에 json 파일 저장
my_network = model.to_json()

# 2. 다음과 같은 코드 작성
with open('my_network.json', 'w') as json_file :
  json_file.write(my_network)

불러올 땐 w를 r (read) 로 변경해준다.

# 불러오기
with open('my_network.json', 'r') as json_file :
  my_network2 = json_file.read()

# 그 후 변수에 저장하여 사용
model4 = tf.keras.models.model_from_json(my_network2)

 

 

 아키텍쳐만 가져왔으므로 현재 weight는 없는 상황 / 학습이 되지 않은 상황

 


이번엔 가중치를 저장하고 불러오자.

model.save_weights('fashion_mnist_weight.h5')

save_weights 함수를 사용한다. 확장자는 h5

 

# weight 불러와 깡통 아키텍쳐에 입히기
model4.load_weights('fashion_mnist_weight.h5')

불러올 땐 깡통 아키텍처에 load_weights 함수로 불러오면 가중치가 입력된다.