반응형
사전 확인
- 학습된 인공신경망 모델 변수 이름 : model
인공신경망 모델 ( 전체(Network+Weight) )
모델 전체 저장하기
- 모델이름.save('파일이름')
- 현재 실행된 파일의 디렉토리에 인공신경망 폴더 생성
# model은 사전에 학습된 인공신경망 변수 이름
model.save('fashion_mnist_model')
폴더가 아닌 하나의 파일로 저장하기
- 모델이름.save('파일이름.h5')
- 현재 실행된 파일의 디렉토리에 .h5 파일 생성
model.save('fashion_mnist_model.h5')
불러오기
- 변수 = tf.keras.models.load_model('파일이름')
model2 = tf.keras.models.load_model('fashion_mnist_model')
model2.evaluate(X_test, y_test)
>>> 313/313 [==============================] - 1s 2ms/step - loss: 0.3408 - accuracy: 0.8841
[0.3407546281814575, 0.8841000199317932]
인공신경망의 네트워크(모델의 기본 틀)
사전 정의
- 변수 = 모델이름.to_json()
# 네트워크 json 파일 정의
my_network = model.to_json()
네트워크만 저장하기
- open('파일이름', 'w') : 해당 파일 이름으로 저장 선언
- 파일.write(네트워크json변수) : 저장한 네트워크를 파일로 저장
- 현재 실행된 파일의 디렉토리에 파일 생성
with open('my_network.json', 'w') as json_file :
json_file.write(my_network)
불러오기
- open('파일이름', 'r') : 해당 파일 호출
- 변수 = 파일.read() : 호출한 파일의 네트워크 정보를 변수에 저장
- 변수 = tf.keras.models.model_from_json(네트워크 정보를 지닌 변수)
with open('my_network.json', 'r') as json_file :
my_net1 = json_file.read()
my_net1
>>> {"class_name": "Sequential", "config": {"name": ...
model_network = tf.keras.models.model_from_json(my_net1)
model_network.evaluate(X_test, y_test)
>>> Error
주의사항
- 네트워크(기본 틀)만 저장 된 모델
- 성능 평가(evaluate) 사용시 에러 출력
- 가중치가 존재하지 않기 때문에 학습 데이터가 없어 예측이 불가
- 예측은 되나 값이 무작위로 출력되어 신뢰성이 낮음
인공신경망의 가중치 (weight)
가중치만 저장하기
- 모델이름.save_weights('파일이름')
- 현재 실행된 파일의 디렉토리에 파일 생성
model.save_weights('fashion_mnist_weight.h5')
불러오기
- 모델이름.load_weights('파일이름')
- 네트워크만 저장된 모델을 불러오면 가중치가 생김. 즉, 예측 가능
model_network.load_weights('fashion_mnist_weight.h5')
반응형