Обслуживающая модель с тензорным потоком после экспорта с KNIME - PullRequest
0 голосов
/ 21 января 2020

Я оспариваю экспорт модели с тензорным потоком для обслуживания с тензорным обслуживанием. После обучения модели с помощью программного обеспечения knime.org я наконец записал саму модель на диск.

В данном случае выбранное имя - "model-tf.zip". После распаковки архива «model-tf.zip» он содержит папку с именем «2d667448-fc0f-446b-b20e-d3bef4214ed3». В этой папке можно найти файл «сохраненный_модель.pb», а также папку «переменные».

Для применения или развертывания модели обычным способом является использование параметра обслуживания TensorFlows через Docker: https://github.com/tensorflow/serving

После установки и тестирования Docker описывается загрузка ранее обученной модели с помощью этой команды в моем случае на машине с Ubuntu:

docker run -t --rm -p 8501:8501 \
    -v "$TESTDATA/saved_model_half_plus_two_cpu:/models/half_plus_two" \
    -e MODEL_NAME=half_plus_two \
    tensorflow/serving &

в отношении именования моей модели это приводит к:

sudo docker run -t --rm -p 8501:8501 \
    -v "$TESTDATA/model-tf:/models/model-tf" \
    -e MODEL_NAME=model-tf \
    tensorflow/serving &

После выполнения команды в терминале выдается несколько ошибок:

sudo docker run -t --rm -p 8500:8500 -v "$TESTDATA/model-tf:/models/model-tf" -e MODEL_NAME=model-tf tensorflow/serving

2020-01-21 08:40:25.042162: I tensorflow_serving/model_servers/server.cc:86] Building single TensorFlow model file config:  model_name: model-tf model_base_path: /models/model-tf
2020-01-21 08:40:25.042310: I tensorflow_serving/model_servers/server_core.cc:462] Adding/updating models.
2020-01-21 08:40:25.042339: I tensorflow_serving/model_servers/server_core.cc:573]  (Re-)adding model: model-tf
2020-01-21 08:40:25.142767: I tensorflow_serving/core/basic_manager.cc:739] Successfully reserved resources to load servable {name: model-tf version: 1}
2020-01-21 08:40:25.142809: I tensorflow_serving/core/loader_harness.cc:66] Approving load for servable version {name: model-tf version: 1}
2020-01-21 08:40:25.142819: I tensorflow_serving/core/loader_harness.cc:74] Loading servable version {name: model-tf version: 1}
2020-01-21 08:40:25.142835: I external/org_tensorflow/tensorflow/cc/saved_model/reader.cc:31] Reading SavedModel from: /models/model-tf/1
2020-01-21 08:40:25.144402: I external/org_tensorflow/tensorflow/cc/saved_model/reader.cc:54] Reading meta graph with tags { serve }
2020-01-21 08:40:25.144847: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:333] SavedModel load for tags { serve }; Status: fail: Not found: Could not find meta graph def matching supplied tags: { serve }. To inspect available tag-sets in the SavedModel, please use the SavedModel CLI: `saved_model_cli`. Took 2008 microseconds.
2020-01-21 08:40:25.144912: E tensorflow_serving/util/retrier.cc:37] Loading servable: {name: model-tf version: 1} failed: Not found: Could not find meta graph def matching supplied tags: { serve }. To inspect available tag-sets in the SavedModel, please use the SavedModel CLI: `saved_model_cli`

Анализ модели с рекомендуемой " save_model_cli "дать следующий результат:

saved_model_cli show --dir /home/mat/serving/tensorflow_serving/servables/tensorflow/testdata/model-tf/1 --all

Результат:

MetaGraphDef with tag-set: 'knime' contains the following SignatureDefs:

signature_def['serve']:
  The given SavedModel SignatureDef contains the following input(s):
    inputs['conv2d_1_input:0'] tensor_info:
        dtype: DT_FLOAT
        shape: (-1, 136, 136, 3)
        name: conv2d_1_input:0
  The given SavedModel SignatureDef contains the following output(s):
    outputs['dense_1/Sigmoid:0'] tensor_info:
        dtype: DT_FLOAT
        shape: (-1, 2)
        name: dense_1/Sigmoid:0
  Method name is: tensorflow/serving/predict

Я думаю, из-за определенного набора тегов, который из-за экспорта" knime "я не могу загрузить модель для развертывания / тестирования. Как можно изменить набор тегов в Knime или мне нужно что-то изменить на стороне TensorFlow?

Не уверен, что это топи c в KNIME или TensorFlow, поэтому я также обратился за помощью в Форум KNIME: https://forum.knime.com/t/export-model-for-serving-with-tensorflow-serving/20559

Любая помощь приветствуется. С наилучшими пожеланиями

...