Установка

Установка Модельсервера

Установка с помощью 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

Установка

  1. Добавьте 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 -
    
  2. Установите и обновите 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 API Python

Чтобы запустить клиентский код Python без необходимости создания API, вы можете установить пакет PIP tensorflow-serving-api используя:

pip install tensorflow-serving-api