Обслуживание нескольких моделей тензорного потока с помощью докера - PullRequest
0 голосов
/ 28 октября 2018

Видя эту проблему с github и эту публикацию stackoverflow, я надеялся, что это просто сработает.

Кажется, что передача в переменную окружения MODEL_CONFIG_FILE никак не влияет. Я запускаю это через docker-compose, но я получаю ту же проблему, используя docker-run.


Ошибка:

I tensorflow_serving/model_servers/server.cc:82] Building single TensorFlow model file config:  model_name: model model_base_path: /models/model
I tensorflow_serving/model_servers/server_core.cc:461] Adding/updating models.
I tensorflow_serving/model_servers/server_core.cc:558]  (Re-)adding model: model
E tensorflow_serving/sources/storage_path/file_system_storage_path_source.cc:369] FileSystemStoragePathSource encountered a file-system access error: Could not find base path /models/model for servable model

Dockerfile

FROM tensorflow/serving:nightly

COPY ./models/first/ /models/first
COPY ./models/second/ /models/second

COPY ./config.conf /config/config.conf

ENV MODEL_CONFIG_FILE=/config/config.conf

Композитный файл

version: '3'

services:
  serving:
    build: .
    image: testing-models
    container_name: tf

Файл конфигурации

model_config_list: {
  config: {
    name:  "first",
    base_path:  "/models/first",
    model_platform: "tensorflow",
    model_version_policy: {
        all: {}
    }
  },
  config: {
    name:  "second",
    base_path:  "/models/second",
    model_platform: "tensorflow",
    model_version_policy: {
        all: {}
    }
  }
}

Ответы [ 3 ]

0 голосов
/ 30 октября 2018

Я столкнулся с этой двойной косой чертой для git bash на windows.

Таким образом, я передаю аргумент, упомянутый @ KrisR89, через command в docker-compose.

Новый docker-compose выглядит следующим образом и работает с поставляемым dockerfile:

version: '3'

services:
  serving:
    build: .
    image: testing-models
    container_name: tf
    command: --model_config_file=/config/config.conf
0 голосов
/ 14 июня 2019

Ошибка в том, что серверу не удалось найти вашу модель.

I tensorflow_serving/model_servers/server.cc:82] Building single TensorFlow model file config:  model_name: model model_base_path: /models/model
I tensorflow_serving/model_servers/server_core.cc:461] Adding/updating models.
I tensorflow_serving/model_servers/server_core.cc:558]  (Re-)adding model: model
E tensorflow_serving/sources/storage_path/file_system_storage_path_source.cc:369] FileSystemStoragePathSource encountered a file-system access error: Could not find base path /models/model for servable model

Ваш файл создания докера не смонтировал файлы вашей модели в контейнере.Поэтому серверу не удалось найти ваши модели.

version: '3'
services:
  serving:
    build: .
    image: testing-models
    container_name: tf

Смонтируйте файлы модели с хоста в контейнер.Я думаю, что вы могли бы сделать это:

version: "3"
services:
        serving:
                image: tensorflow/serving:latest
                restart: unless-stopped
                ports:
                        - 8501:8501
                volumes:
                        - ${FIRST_MODEL_PATH <HOST>}:/models/${FIRST_MODEL_NAME}
                        - ${SECOND_MODEL_PATH <HOST>}:/models/${SECOND_MODEL_NAME}
                        - <HOST PATH>/models.config:/models/models.config
                command: --model_config_file=/models/models.config

Замените {PATH} и {MODEL_NAME} на ваш путь и имя модели.

models.config должен быть задан ключ файла versions.

model_config_list: {
  config: {
    name:  "first",
    base_path:  "/models/first",
    model_platform: "tensorflow",
    model_version_policy: {
        versions: 1
        versions: 2
    }
  },
  config: {
    name:  "second",
    base_path:  "/models/second",
    model_platform: "tensorflow",
    model_version_policy: {
        versions: 1
        versions: 2
    }
  }
}

И вы можете видеть это , обслуживающий официальный документ

0 голосов
/ 29 октября 2018

Не существует переменной среды докера с именем «MODEL_CONFIG_FILE» (это переменная тензорного потока / обслуживания, см. Изображение докера ссылка ), поэтому в образе докера будут использоваться только переменные среды докера по умолчанию («MODEL_NAME = model»)."и" MODEL_BASE_PATH = / models ") и запустите модель« / models / model »при запуске образа докера.«config.conf» должен использоваться в качестве входных данных при запуске tenorsflow / Обслуживание.Попробуйте запустить что-то вроде этого:

docker run -p 8500:8500 8501:8501 \
  --mount type=bind,source=/path/to/models/first/,target=/models/first \
  --mount type=bind,source=/path/to/models/second/,target=/models/second \
  --mount type=bind,source=/path/to/config/config.conf,target=/config/config.conf\
  -t tensorflow/serving --model_config_file=/config/config.conf
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...