본문 바로가기
인공지능/ML, DL

[tensorflow] 모델 로드 시 컴파일 warning 해결 (No training configuration found in the save file, so the model was *not* compiled.)

by judy@ 2022. 12. 19.

문제 상황

모델을 학습하여 .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)

 

반응형