상세 컨텐츠

본문 제목

Tensorflow - Fingerprint not found. Saved model loading will continue logger.info

데이터 과학

by Taeyoon.Kim.DS 2023. 11. 2. 18:56

본문

 

데이터셋에 대해서 훈련 모델을 S3에 다운로드 받고난 후에 fingerprint라는 특수한? 지문을 남기지 않아서 이후에 TF에서 모델을 다운로드 받아서 추론에 사용할 때 핑거프린트없음. 저장된 모델 다운로드 받기를 진행하겠음 이것 같다. 

만약 지문이 이미 있는 상태라면 - 지문은 캐싱 같은걸까? 다운로드 안받고 그대로 그 지문을 이용할것이다. 느낌상으로 지문은 이미 압축이 풀어져있는 numerical values의 나열이라면 saved model은 당연히 압축파일이고 다운로드받은 후에 압축 해제한 후 일련의 과정을 거쳐야 할테니 시간이 더 오래 걸릴 것이다.

 

https://fossies.org/linux/tensorflow/tensorflow/python/saved_model/load.py

 

tensorflow: tensorflow/python/saved_model/load.py | Fossies

 

fossies.org

해당 Fingerprint logger info는 1069라인에서 찾을 수 있다. 저 logger info를 logger level을 낮춰서 저런 warning이나 쓸데없는 메시지는 출력하지 않게 할 수 있지만 그것까지는 아직 필요 없으니 그냥 내버려두도록한다.

참고로

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' 
import tensorflow as tf

이런 류라고 보면된다.

 

# 21/11/2023 Fingerprint error message를 없애보려고 한다.

TensorFlow와 Keras에서 fingerprint.pb와 saved_model.pb 파일은 둘 다 모델을 저장하는 데 사용되지만, 목적과 형식이 다르다.

 

saved_model.pb:
이 파일은 TensorFlow의 SavedModel 형식으로 모델을 저장합니다. 이 형식은 모델의 구조, 가중치, 그리고 학습된 모델의 메타데이터를 포함합니다. (Keras_metadata.pb, saved_model.pb, variables (dir)).모델의 전체 구조와 가중치, 그리고 그래프 정보를 저장합니다.

 

fingerprint.pb:

fingerprint.pb는 TensorFlow 또는 Keras의 표준 파일 형식은 아닙니다. 일반적으로, "fingerprint" 파일은 특정 애플리케이션 또는 시스템에서 사용하는 맞춤형 파일일 수 있습니다. 예를 들어, 모델의 고유 식별자나 특정 모델 상태의 해시를 저장하는 데 사용될 수 있습니다. 정확한 내용과 사용 목적은 해당 파일을 생성한 시스템이나 애플리케이션에 따라 달라질 수 있습니다.

keras.models의 save_model(model, filepath) 함수를 사용하여 모델을 저장할 때, 일반적으로 생성되는 파일들은 다음과 같습니다:

assets: 모델과 관련된 추가 파일들, 예를 들어 텍스트 파일이나 텐서플로 허브 모듈 등이 여기에 포함될 수 있습니다.
keras_metadata.pb: Keras 모델의 메타데이터를 포함하는 파일입니다. 모델 구조와 관련된 정보를 담고 있습니다.
saved_model.pb: 모델의 구조, 가중치 및 컴파일 정보를 포함하는 파일입니다. 이 파일은 TensorFlow에서 모델을 재생성하는 데 필요한 모든 정보를 담고 있습니다. variables: 모델의 훈련된 가중치가 저장되는 폴더입니다. 이 폴더 안에는 가중치와 관련된 여러 체크포인트 파일들이 저장됩니다.


fingerprint.pb 파일에 대해:
fingerprint.pb 파일은 TensorFlow 또는 Keras의 표준 저장 형식에 포함되지 않습니다.
이 파일은 모델의 무결성을 확인하는 데 사용되는 메타데이터 파일일 수 있으며, 주로 TensorFlow의 내부 시스템이나 특정 애플리케이션에서 사용될 수 있습니다. 표준 Keras 모델 저장 프로세스에서는 fingerprint.pb 파일이 생성되거나 필요하지 않습니다. 만약 특정 시스템이나 환경에서 fingerprint.pb 파일이 필요한 경우가 있다면, 그것은 해당 시스템이나 환경의 특수한 요구 사항일 가능성이 높습니다. 결론적으로, keras.models의 save_model 함수를 사용하여 저장된 표준 Keras 모델에 fingerprint.pb 파일이 없는 것은 정상입니다. 이 파일을 별도로 다운로드하거나 생성할 필요는 없습니다, 특정 시스템이나 환경에서 추가적인 요구 사항이 없는 한 말이죠.

 

 

관련글 더보기