Instalowanie ModelServera
Instalacja za pomocą Dockera
Najłatwiejszym i najprostszym sposobem korzystania z udostępniania TensorFlow są obrazy Dockera . Zdecydowanie zalecamy tę trasę, chyba że masz określone potrzeby, których nie można zaspokoić, uruchamiając w kontenerze.
WSKAZÓWKA: Jest to również najłatwiejszy sposób, aby TensorFlow Serving współpracował z obsługą GPU .
Instalacja za pomocą APT
Dostępne pliki binarne
Plik binarny TensorFlow obsługujący ModelServer jest dostępny w dwóch wariantach:
tensorflow-model-server : W pełni zoptymalizowany serwer, który wykorzystuje pewne optymalizacje kompilatora specyficzne dla platformy, takie jak instrukcje SSE4 i AVX. Powinna to być preferowana opcja dla większości użytkowników, ale może nie działać na niektórych starszych komputerach.
tensorflow-model-server-universal : skompilowany z podstawowymi optymalizacjami, ale nie zawiera zestawów instrukcji specyficznych dla platformy, więc powinien działać na większości, jeśli nie na wszystkich dostępnych maszynach. Użyj tego, jeśli tensorflow-model-server
nie działa dla Ciebie. Zauważ, że nazwa binarna jest taka sama dla obu pakietów, więc jeśli już zainstalowałeś tensorflow-model-server, powinieneś najpierw odinstalować go za pomocą
apt-get remove tensorflow-model-server
Instalacja
Dodaj identyfikator URI dystrybucji TensorFlow Serving jako źródło pakietu (konfiguracja jednorazowa)
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 -
Zainstaluj i zaktualizuj TensorFlow ModelServer
apt-get update && apt-get install tensorflow-model-server
Po zainstalowaniu plik binarny można wywołać za pomocą polecenia tensorflow_model_server
.
Możesz uaktualnić do nowszej wersji tensorflow-model-server za pomocą:
apt-get upgrade tensorflow-model-server
Budowanie ze źródła
Zalecanym podejściem do budowania ze źródła jest użycie Dockera. Obrazy rozwojowe platformy Docker TensorFlow zawierają wszystkie zależności potrzebne do zbudowania własnej wersji usługi TensorFlow Serving.
Aby zapoznać się z listą tych zależności, zobacz pliki dockerowe dotyczące rozwoju obsługi TensorFlow [ CPU , GPU ].
Instalowanie Dockera
Ogólne instrukcje instalacji znajdują się na stronie Dockera .
Sklonuj skrypt kompilacji
Po zainstalowaniu Dockera musimy zdobyć źródło, z którego chcemy budować. Użyjemy Gita do sklonowania głównej gałęzi TensorFlow Serving:
git clone https://github.com/tensorflow/serving.git
cd serving
Zbudować
Aby zbudować środowisko hermetyczne z uwzględnieniem wszystkich zależności, użyjemy skryptu run_in_docker.sh
. Ten skrypt przekazuje polecenia kompilacji do kontenera Docker. Domyślnie skrypt zostanie zbudowany przy użyciu najnowszego obrazu programistycznego platformy Docker dostępnego w nocy.
TensorFlow Serving używa Bazela jako narzędzia do kompilacji. Możesz używać poleceń Bazel do budowania pojedynczych obiektów docelowych lub całego drzewa źródłowego.
Aby zbudować całe drzewo, wykonaj:
tools/run_in_docker.sh bazel build -c opt tensorflow_serving/...
Pliki binarne są umieszczane w katalogu bazel-bin i można je uruchomić za pomocą polecenia takiego jak:
bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server
Aby przetestować swoją kompilację, wykonaj:
tools/run_in_docker.sh bazel test -c opt tensorflow_serving/...
Zobacz podstawowy samouczek i zaawansowany samouczek , aby uzyskać bardziej szczegółowe przykłady uruchamiania udostępniania TensorFlow.
Tworzenie konkretnych wersji TensorFlow Serving
Jeśli chcesz budować na podstawie określonej gałęzi (takiej jak gałąź wydania), przekaż -b <branchname>
do polecenia git clone
.
Będziemy także chcieli dopasować środowisko kompilacji dla tej gałęzi kodu, przekazując skryptowi run_in_docker.sh
obraz programistyczny Dockera, którego chcemy użyć.
Na przykład, aby zbudować wersję 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/...
...
Zoptymalizowana konstrukcja
Jeśli chcesz zastosować ogólnie zalecane optymalizacje, w tym wykorzystanie zestawów instrukcji specyficznych dla platformy dla Twojego procesora, możesz dodać --config=nativeopt
do poleceń kompilacji Bazel podczas tworzenia udostępniania TensorFlow.
Na przykład:
tools/run_in_docker.sh bazel build --config=nativeopt tensorflow_serving/...
Możliwa jest także kompilacja przy użyciu określonych zestawów instrukcji (np. AVX). Gdziekolwiek w dokumentacji widzisz bazel build
, po prostu dodaj odpowiednie flagi:
Zestaw instrukcji | Flagi |
---|---|
AVX | --copt=-mavx |
AVX2 | --copt=-mavx2 |
FMA | --copt=-mfma |
SSE 4.1 | --copt=-msse4.1 |
SSE 4.2 | --copt=-msse4.2 |
Wszystko obsługiwane przez procesor | --copt=-march=native |
Na przykład:
tools/run_in_docker.sh bazel build --copt=-mavx2 tensorflow_serving/...
Budowanie ze wsparciem GPU
Aby zbudować niestandardową wersję TensorFlow Serving z obsługą procesora graficznego, zalecamy albo budowanie przy użyciu dostarczonych obrazów Dockera , albo skorzystanie z podejścia opisanego w pliku Dockerfile GPU .
TensorFlow obsługujący pakiet PIP API języka Python
Aby uruchomić kod klienta Pythona bez konieczności budowania API, możesz zainstalować pakiet PIP tensorflow-serving-api
używając:
pip install tensorflow-serving-api