문제 상황
모델을 학습하여 .h5 확장자로 저장하고, 다른 프로세스에서 저장한 모델을 통해 Prediction 하려고 로드하니, 다음과 같은 에러가 발생하였다.
WARNING:tensorflow:No training configuration found in the save file, so the model was *not* compiled. Compile it manually.
해결 방안
stackoverflow를 참고하여 확인해보니, 모델이 컴파일되지 않은 상태로 저장되어서 발생하는 문제라고 함. 확인해보니 나의 경우 autoencoder 중 encoder만 분리하여 저장하는데, AE 전체는 컴파일하지만 encoder만 따로 학습하지 않아 별도의 컴파일 코드가 없었음. 따라서, encoder만 별도로 저장할 시에는 optimizer 등 별도의 학습 config를 저장하지 않아 오류가 발생함.
일반적인 경우에는 compile 이 안된 것이 문제가 될 수 있으나, 나는 encoder는 inference 용도로 별도의 컴파일이 필요없음. 따라서 이 warning을 띄우지 않도록만 수정하면 됨. 이를 위해서는 load_model에서 compile=False 옵션을 사용하면 warning이 사라짐.
# 기존 코드
encoder = tf.keras.models.load_model(encoder_model_path)
# 바꾼 코드
encoder = tf.keras.models.load_model(encoder_model_path, compile=False)
반응형
'인공지능 > ML, DL' 카테고리의 다른 글
[NLP] Sentence-transformer를 활용한 문장 임베딩 (0) | 2023.04.28 |
---|---|
[ChatGPT] Python ChatGPT API 사용 방법 (한국어 예시) (0) | 2023.04.27 |
[tensorflow] tensorflow 2.9 (2.9.1) 버전에서 CPU만 사용하기 (GPU 사용 안함) (0) | 2022.11.23 |
[ML, DL] Baseline Accuracy란? (기준 모델, 기준 정확도) (0) | 2022.08.30 |
[CNN] XAI 구현하기 - (1) CAM (0) | 2022.03.07 |