ValueError: Signature 'serving_default' does not exist. The following signatures are available: KeysView(_SignatureMap({})) (TensorFlow 모델을 저장하고 불러오기 (SavedModel))

0. 목표

1. 문제

  • .pb 파일을 .json으로 변환하려는 과정에서 에러 발생
    • ValueError: Signature ‘serving_default’ does not exist. The following signatures are available: KeysView(_SignatureMap({})) error

2. SavedModel CLI를 이용해 SavedModel의 Signature를 확인

How to Show Signatures of Tensorflow Saved Model - Yu Ishikawa - Medium

check-signature

  • 아무것도 없다 ㅎㅎ
  • build 코드를 작성할 때 signature_def_map 변수를 제대로 넣지 않아서 발생한 것으로 파악되었다. 생각없이 예제를 복붙하고 결과부터 보려 했기 때문 ㅎㅎ

3. signature_def가 뭔데?

  • TensorFlow Serving provides high level APIs for performing inference. To enable these APIs, models must include one or more SignatureDefs that define the exact TensorFlow nodes to use for input and output.
  • Classification SignatureDefs support structured calls to TensorFlow Serving’s Classification API. These prescribe that there must be an inputs Tensor, and that there are two optional output Tensors: classes and scores, at least one of which must be present.
    [SignatureDefs in SavedModel for TensorFlow Serving TFX TensorFlow](https://www.tensorflow.org/tfx/serving/signature_defs)
  • SignatureDef 정의 방법을 서치해 보니 Node마다 일일히 signature의 input과 output을 지정해주어야 하는 것 같다… 또한 checkpoint를 이용하는 방법보다 훨씬 복잡하다고 한다.

    tensorflow - How do I change the Signatures of my SavedModel without retraining the model? - Stack Overflow

    조대협의 블로그 :: ‘텐서플로우%20서빙’ 태그의 글 목록

4. Checkpoint를 저장한 후 이를 불러와서 모델을 저장하자

[Save and Restore TensorFlow Core TensorFlow](https://www.tensorflow.org/guide/saved_model?hl=ko#save_and_restore_variables)

Export and Import Models with Tensorflow SavedModelBuilder: an LSTM Example

  • tf.train.Saver()tf.train.Saver.save 메소드를 이용해 checkpoint file을 저장
  • tf.train.Saver()tf.train.Saver.restore 메소드를 이용해 checkpoint file로부터 변수를 restore
    • Note that when you restore variables you do not have to initialize them beforehand.
  • 머리가 아프니 내일 해 보기로 한다.

2019

Redis 기초 특강 - 강대명 멘토

1 minute read

Redis 소개 In-memory data structure storage disk 접근을 하지 않음 -> 속도가 빠르다 오픈소스(BSD 3) 제공되는 자료구조들 Strings, set, sorted-set, ...

Node.js 특강 - 손영수 멘토 (2)

3 minute read

MongoDB 클라우드 서비스를 SaaS로 제공하려다가 그 중 DB 서비스가 제일 잘 나가서 MongoDB가 됨 No Schema: JSON data 삽입 시 field가 생성됨 Document data model JSON data를 그대로 넣음 ...

Node.js 특강 - 손영수 멘토 (1)

3 minute read

웹 서버의 구동 방식에는 8가지가 있음(3페이지) Node.js는 비동기, non-blocking Server side Javascript Event driven Asynchronous Non-Blocking I/O ...

TensorFlow.js: Speech Command Recognizer (번역)

less than 1 minute read

TensorFlow.js의 공식 모델 중 하나인 Speech command recognition에 대해 조사해 보았습니다. 원문 링크: tfjs-models/speech-commands at master · tensorflow/tfjs-models · GitHub

Chapter 04. HTML & CSS 필수 기초 (2)

2 minute read

이 포스트는 SW마에스트로 자기주도학습으로 패스트캠퍼스의 웹 프론트엔드 올인원 패키지 Online을 수강하면서 작성한 노트입니다.

Chapter 04. HTML & CSS 필수 기초 (1)

1 minute read

이 포스트는 SW마에스트로 자기주도학습으로 패스트캠퍼스의 웹 프론트엔드 올인원 패키지 Online을 수강하면서 작성한 노트입니다.

Chapter 03. CSS 입문

1 minute read

이 포스트는 SW마에스트로 자기주도학습으로 패스트캠퍼스의 웹 프론트엔드 올인원 패키지 Online을 수강하면서 작성한 노트입니다.

CC 라이센스

less than 1 minute read

소프트웨어 마에스트로 과정에서 아기 울음소리를 인식하고 분류하는 딥러닝 모델을 작성하고 있습니다. GitHub에 공개되어 있는 소리 데이터셋을 사용하기 위해 확인한 라이센스 몇 가지를 정리해 보았습니다. 참고한 곳: CC 라이선스 :: Creative Commons K...

URI와 URL의 차이점

less than 1 minute read

이 포스트는 What Is The Difference Between A URI And A URL? - DEV Community 👩‍💻👨‍💻 를 참고하여 작성되었습니다.

Chapter 02. HTML 입문

1 minute read

이 포스트는 SW마에스트로 자기주도학습으로 패스트캠퍼스의 웹 프론트엔드 올인원 패키지 Online을 수강하면서 작성한 노트입니다.

블로그 개설

less than 1 minute read

Github 블로그를 드디어 개설했습니다.🎉

Back to Top ↑