Установка Модельсервера
Установка с помощью Docker
Самый простой и понятный способ использования TensorFlow Serving — с изображениями Docker . Мы настоятельно рекомендуем этот путь, если у вас нет особых потребностей, которые не решаются запуском в контейнере.
СОВЕТ: Это также самый простой способ заставить TensorFlow Serving работать с поддержкой графического процессора .
Установка с помощью APT
Доступные двоичные файлы
Бинарный файл TensorFlow Serving ModelServer доступен в двух вариантах:
tensorflow-model-server : полностью оптимизированный сервер, который использует некоторые оптимизации компилятора для конкретной платформы, такие как инструкции SSE4 и AVX. Это должен быть предпочтительный вариант для большинства пользователей, но он может не работать на некоторых старых машинах.
tensorflow-model-server-universal : скомпилирован с базовыми оптимизациями, но не включает наборы инструкций для конкретной платформы, поэтому должен работать на большинстве, если не на всех, машинах. Используйте это, если tensorflow-model-server
вам не подходит. Обратите внимание, что двоичное имя одинаково для обоих пакетов, поэтому, если вы уже установили tensorflow-model-server, вам следует сначала удалить его, используя
apt-get remove tensorflow-model-server
Установка
Добавьте URI распространения TensorFlow Serving в качестве источника пакета (однократная установка).
echo "deb [arch=amd64] http://storage.googleapis.com/tensorflow-serving-apt stable tensorflow-model-server tensorflow-model-server-universal" | sudo tee /etc/apt/sources.list.d/tensorflow-serving.list && \ curl https://storage.googleapis.com/tensorflow-serving-apt/tensorflow-serving.release.pub.gpg | sudo apt-key add -
Установите и обновите TensorFlow ModelServer.
apt-get update && apt-get install tensorflow-model-server
После установки двоичный файл можно вызвать с помощью команды tensorflow_model_server
.
Вы можете перейти на более новую версию tensorflow-model-server с помощью:
apt-get upgrade tensorflow-model-server
Сборка из исходников
Рекомендуемый подход к сборке из исходного кода — использовать Docker. Образы разработки TensorFlow Serving Docker инкапсулируют все зависимости, необходимые для создания собственной версии TensorFlow Serving.
Список этих зависимостей см. в Dockerfiles разработки TensorFlow Serving Development [ CPU , GPU ].
Установка Докера
Общие инструкции по установке находятся на сайте Docker .
Клонировать скрипт сборки
После установки Docker нам нужно получить исходный код, из которого мы хотим выполнить сборку. Мы будем использовать Git для клонирования главной ветки TensorFlow Serving:
git clone https://github.com/tensorflow/serving.git
cd serving
Строить
Чтобы создать герметичную среду с учетом всех зависимостей, мы будем использовать скрипт run_in_docker.sh
. Этот скрипт передает команды сборки в контейнер Docker. По умолчанию скрипт будет построен с использованием последнего образа разработки Docker, который осуществляется каждую ночь.
TensorFlow Serving использует Bazel в качестве инструмента сборки. Вы можете использовать команды Bazel для построения отдельных целевых объектов или всего дерева исходного кода.
Чтобы построить все дерево, выполните:
tools/run_in_docker.sh bazel build -c opt tensorflow_serving/...
Двоичные файлы размещаются в каталоге bazel-bin и могут быть запущены с помощью такой команды:
bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server
Чтобы протестировать вашу сборку, выполните:
tools/run_in_docker.sh bazel test -c opt tensorflow_serving/...
См. базовое руководство и расширенное руководство для более подробных примеров запуска TensorFlow Serving.
Создание конкретных версий TensorFlow Serving
Если вы хотите выполнить сборку из определенной ветки (например, ветки выпуска), передайте -b <branchname>
команде git clone
.
Мы также захотим сопоставить среду сборки для этой ветви кода, передав скрипту run_in_docker.sh
образ разработки Docker, который мы хотим использовать.
Например, чтобы собрать версию 1.10 TensorFlow Serving:
$ git clone -b r1.10 https://github.com/tensorflow/serving.git
...
$ cd serving
$ tools/run_in_docker.sh -d tensorflow/serving:1.10-devel \
bazel build tensorflow_serving/...
...
Оптимизированная сборка
Если вы хотите применить общерекомендуемые оптимизации, включая использование наборов команд, специфичных для вашей платформы, для вашего процессора, вы можете добавить --config=nativeopt
к командам сборки Bazel при построении обслуживания TensorFlow.
Например:
tools/run_in_docker.sh bazel build --config=nativeopt tensorflow_serving/...
Также возможна компиляция с использованием определенных наборов инструкций (например, AVX). Везде, где в документации вы видите bazel build
, просто добавьте соответствующие флаги:
Набор инструкций | Флаги |
---|---|
AVX | --copt=-mavx |
AVX2 | --copt=-mavx2 |
ФМА | --copt=-mfma |
ССЕ 4.1 | --copt=-msse4.1 |
ССЕ 4.2 | --copt=-msse4.2 |
Все поддерживается процессором | --copt=-march=native |
Например:
tools/run_in_docker.sh bazel build --copt=-mavx2 tensorflow_serving/...
Сборка с поддержкой графического процессора
Чтобы создать собственную версию TensorFlow Serving с поддержкой графического процессора, мы рекомендуем либо выполнить сборку с использованием предоставленных образов Docker , либо следовать подходу, описанному в файле GPU Dockerfile .
TensorFlow, обслуживающий пакет PIP Python API
Чтобы запустить клиентский код Python без необходимости создания API, вы можете установить пакет PIP tensorflow-serving-api
используя:
pip install tensorflow-serving-api