https://fossies.org/linux/tensorflow/tensorflow/python/saved_model/load.py
Tf.python.saved_model.load 파일에서 해당 라인을 찾을 수 있다.
먼저, 일반적인 컨텍스트에서 "fingerprinting"이나 "지문"은 데이터나 객체의 고유한 표현 또는 식별자를 의미합니다. 데이터의 지문을 생성하면 해당 데이터의 작은 바이트 크기의 고유한 값(보통 해시 값)을 얻을 수 있습니다. 이 값은 원본 데이터와 항상 일치해야 하며, 원본 데이터에 아주 작은 변경이 발생하더라도 완전히 다른 지문 값이 생성됩니다.
TensorFlow의 SavedModel에서의 "fingerprinting"은 이와 유사한 개념입니다. SavedModel의 지문은 해당 모델의 고유한 식별자나 상태를 나타내는 값입니다. 이러한 지문은 다음과 같은 목적으로 사용될 수 있습니다:
버전 관리: 지문을 사용하여 모델의 특정 버전을 식별하거나 추적할 수 있습니다. 이를 통해 모델의 변경 내역을 기록하고, 필요한 버전의 모델을 쉽게 검색할 수 있습니다.
무결성 검사: 지문을 사용하여 모델의 무결성을 확인할 수 있습니다. 예를 들어, 모델을 전송하거나 다운로드한 후에 지문을 확인하여 모델이 변경되거나 손상되지 않았는지 확인할 수 있습니다.
캐싱: 지문을 사용하여 모델의 특정 버전이 이미 로드되었는지 또는 처리되었는지 확인할 수 있습니다. 이를 통해 중복된 로딩 또는 처리를 방지하여 성능을 최적화할 수 있습니다.
그런데 일반적으로 saved_model를 하는 과정에서 왜 finrgerprint logging error가 생기는지 알 수 없다. 아마 Training된 keras 모델을 fignerprint형태로 올리지않고 파일 자체를 s3에 올리기 때문일 것 같다. 새로운 pipfile.lock 버전을 기반으로 Training을 돌려보는게 좋을 것 같다.
DS-220는 pipfile이 새로운 pipfile로 변경되기 이전의 버전이다. 그래서 GPU를 사용하고 있고 Ram 사용량이 6GB이다. 그렇다면 OCR의 result는 어떻게 될지 알아봐야 하겠다. 새로운 pipfile.lock에서는 result = [None]이 추가되어서 추가적인 추출 기법이 필요했다. 내 예상대로 예전의 OCR result에서는 result = [] 빈 리스트형태일까? 새로운 pipfile.lock이 아니기 때문에 fingerprint 에러는 발생하지 않는다. 대신 OCR output을 확인해보고, 그 다음에는 testing에서 pull하고 난 후에 알아봐야한다.
아 --- 나는 어제 Desktop에서 rebuild를 했고, Laptop에서는 rebuild를 하지 않았기 때문에 여전히 pipfile이 바뀌었던 안 바뀌었던 예전의 pipfile.lock을 사용하는구나.
1. DS-220의 OCR result output: (이전 pipfile.lock)
1) IF the model cannot extract the text : result = [ [ ] ]
text = [ ]
2. 현재 Pipfile.lock
text = [None]
참조.
https://koreanscotbrandprotection.tistory.com/81
Tensorflow - Fingerprint not found. Saved model loading will continue logger.info (0) | 2023.11.02 |
---|---|
Install Opencv - libGL.so.1 error (0) | 2023.11.02 |
pipenv install --deploy와 --dev (0) | 2023.10.31 |
PaddleOCR Result값의 변경 (1) | 2023.10.31 |
AWS 의 AMI rebuild with CPU only EC2 instance (0) | 2023.10.31 |