오늘은 머신러닝 모델을 불러올 때 조금 더 효율적이고 서버가 가벼워지는 방법을 공부해보고 이후 아두이노 회로 구상을 마친 뒤, 서버를 테스트해보았다. 서버에서는 flask의 jsonify를 반환할 때 한글이 깨져서 보이는 이슈가 생겨 로그 확인용 print는 한글로 유지하면서 return 부분의 jsonify만 영어로 교체하는 방향으로 수정을 할 예정이다.
@lru_cache(maxsize=1)
def _load_model():
"""
모델 사용시에만 최초 1회만 로드 진행
@lru_cache으로 모델 로드 캐시 저장
"""
if not MODEL_PATH.exists():
print("모델 파일 없음")
raise FileNotFoundError("모델 파일 없음")
with open(MODEL_PATH, "rb") as f:
print("모델 로드 성공")
return pickle.load(f)
lru_cache 데코레이터를 사용하면 해당 함수를 처음 사용할 때 모델을 로드하고 캐시로 저장해두었다가 이후에 함수를 다시 호출하게 되면 캐시에 저장해두었던 모델을 불러와서 사용하는 구조로 작동하는 것 같다.
내일은 처음에 말했던 jsonify의 에러 메시지를 영어로 수정한 뒤 중간 평가를 진행할 예정이다.