Не удается запустить tenorflow, обслуживающий из докера

Я пытаюсь обслужить мою модель тензорного потока / обслуживания с помощью докера. Далее следует пример https://www.tensorflow.org/tfx/serving/docker. Практически то же самое я делаю со своей простой моделью.

В WindowsPowerShell:

set-variable -name "PATH" -variable "D:\Other\tf-serving-example\savedmodel"

сохраненная модель:

|-- 1
    |-- assets
    |-- saved_model.pb
    `-- variables
        |-- variables.data-00000-of-00001
        `-- variables.index

Следующая команда:

docker run -p 8501:8501 --mount type=bind,source=$PATH,target=/models/simple_cnn_model -e MODEL_NAME=simple_cnn_model -t tensorflow/serving

Но не работает:

2021-01-19 15:32:30.681935: I tensorflow_serving/model_servers/server.cc:88] Building single TensorFlow model file config:  model_name: simple_cnn_model model_base_path: /models/simple_cnn_model
2021-01-19 15:32:30.682158: I tensorflow_serving/model_servers/server_core.cc:464] Adding/updating models.
2021-01-19 15:32:30.682192: I tensorflow_serving/model_servers/server_core.cc:587]  (Re-)adding model: simple_cnn_model
2021-01-19 15:32:30.783407: I tensorflow_serving/core/basic_manager.cc:740] Successfully reserved resources to load servable {name: simple_cnn_model version: 1}
2021-01-19 15:32:30.783506: I tensorflow_serving/core/loader_harness.cc:66] Approving load for servable version {name: simple_cnn_model version: 1}
2021-01-19 15:32:30.783531: I tensorflow_serving/core/loader_harness.cc:74] Loading servable version {name: simple_cnn_model version: 1}
2021-01-19 15:32:30.783643: E tensorflow_serving/util/retrier.cc:37] Loading servable: {name: simple_cnn_model version: 1} failed: Not found: Specified file path does not appear to contain a SavedModel bundle (should have a file called `saved_model.pb`) Specified file path: /models/simple_cnn_model/1

Интересно, что все работает с моделями из примера. Но моя модель почти такая же и сохранена правильно. Так что не так? Похоже, что команда --mount не копирует содержимое из savedmodel / 1, но, насколько я понял, она должна копировать содержимое в контейнер.


person Vlad Timofeev    schedule 19.01.2021    source источник


Ответы (1)


Эта команда отлично работает

docker run -t --rm -d -p 8501:8501 -v "D:\Other\tf-serving-example\savedmodel:/models/simple_cnn_model" -e MODEL_NAME=simple_cnn_model tensorflow/serving
person Vlad Timofeev    schedule 20.01.2021
comment
Я запускал докер в Windows. При этом вам нужно использовать путь к Windows, даже если вы вызываете докер из gitbash или cygwin, лучше всего вызывать его из cmd. - person StevenWernerCS; 22.01.2021