参考:
1、https://tensorflow.google.cn/
2、https://www.tensorflow.org/
3、https://tensorflow.google.cn/serving/setup
4、
http://note.youdao.com/noteshare?id=92af08c5ceff28db9748f822fee05322&sub=7E5B724B2443405C9DD3D8E22C3A1EE9
环境Ubuntu 16.04 LTS
注: tf_serving 默认是python2版,python3可以参考该安装方法
TensorFlow Serving需要Bazel 0.5.4或更高。 您可以在这里找到Bazel安装说明。
ubuntu安装参考:https://docs.bazel.build/versions/master/install-ubuntu.html
注:只支持ubuntu 16.04 (LTS) , ubuntu 14.04 (LTS)
sudo apt-get install openjdk-8-jdk
On Ubuntu 14.04 LTS you’ll have to use a PPA:(Ubuntu 16.04 LTS 跳过)
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update && sudo apt-get install oracle-java8-installer
echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
如果要安装Bazel的测试版本,请将stable替换为 testing。
sudo apt-get update && sudo apt-get install bazel
一旦安装,您可以升级到更新版本的Bazel:
sudo apt-get upgrade bazel
二进制安装程序位于Bazel的GitHub发布页面上。
sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python
注意:在本文档中列出的安装程序文件名称中,用适当的Bazel版本号替换。
Go to Bazel’s GitHub releases page.
下载二进制安装程序bazel-
。 该安装程序包含Bazel二进制文件和所需的JDK,即使已经安装了JDK,也可以使用该安装程序。
请注意,bazel-
也存在。 这是一个没有嵌入式JDK 8的版本。如果你已经安装了JDK 8,只能使用这个安装程序。
chmod +x bazel-<version>-installer-linux-x86_64.sh
./bazel-<version>-installer-linux-x86_64.sh --user
–user 标志将Bazel安装到系统上的$HOME/bin
目录中,并将.bazelrc路径设置为$HOME/.bazelrc
。 使用–help命令查看其他安装选项。
如果使用上面的--user
标志运行Bazel安装程序,则Bazel可执行文件将安装在您的$HOME/bin
目录中。 将此目录添加到默认路径是一个好主意,如下所示:
export PATH="$PATH:$HOME/bin"
您也可以将此命令添加到~/.bashrc
文件中。
参考:https://docs.bazel.build/versions/master/install-compile-source.html
我们的教程使用gRPC(1.0.0或更高版本)作为我们的RPC框架。 你可以在这里找到安装说明。
参考:https://github.com/grpc/grpc/tree/master/src/python/grpcio
# 本地安装
pip install grpcio
# Ubuntu安装
sudo pip install grpcio # python2
# Windows安装,需先安装pip.exe组件
pip.exe install grpcio
从源代码构建需要你有Python头文件(通常是一个名为python-dev
的包)。
$ export REPO_ROOT=grpc # REPO_ROOT can be any directory of your choice
$ git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc $REPO_ROOT
$ cd $REPO_ROOT
$ git submodule update --init
# For the next two commands do `sudo pip install` if you get permission-denied errors
$ pip install -rrequirements.txt
$ GRPC_PYTHON_BUILD_WITH_CYTHON=1 pip install .
您目前无法在Windows上从源代码安装Python。 在MSYS2中可能会出现一些问题(按照Linux的说明),但目前尚未得到官方的支持。
参考:https://github.com/grpc/grpc/tree/master/src/python/grpcio
要安装TensorFlow server依赖关系,请执行以下操作:
sudo apt-get update && sudo apt-get install -y \
build-essential \
curl \
libcurl3-dev \
git \
libfreetype6-dev \
libpng12-dev \
libzmq3-dev \
pkg-config \
python-dev \
python-numpy \
python-pip \
software-properties-common \
swig \
zip \
zlib1g-dev
构建TensorFlow所需的软件包列表会随着时间而改变,所以如果遇到任何问题,请参阅TensorFlow的build instructions。 请特别注意可能需要运行的apt-get install
和pip install
命令。
要运行Python客户端代码而无需安装Bazel,可以使用以下命令来安装tensorflow-serving-api PIP包:
# tensorflow serving 默认是python2版
pip install tensorflow-serving-api # 貌似只能安装python2版
pip3 install tensorflow-serving-api # 安装不成功
TensorFlow Serving ModelServer二进制文件有两种版本:
tensorflow-model-server
:完全优化的服务器,使用一些平台特定的编译器优化,如SSE4和AVX指令。 这应该是大多数用户的首选选项,但可能无法在一些较旧的机器上工作。
tensorflow-model-server-universal
:编译基本的优化,但不包括特定于平台的指令集,所以应该在大多数机器上工作,如果不是所有的机器。 如果tensorflow-model-server不适合你,请使用这个。 请注意,这两个软件包的二进制名称是相同的,所以如果您已经安装tensorflow-model-server,您应该首先使用卸载
sudo apt-get remove tensorflow-model-server
1、添加TensorFlow Serving 分发URI作为包源(一次性设置)
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
sudo apt-get update && sudo apt-get install tensorflow-model-server
安装完成后,可以使用tensorflow_model_server
命令调用二进制文件。
您可以升级到更新版本的tensorflow-model-server
:
sudo apt-get upgrade tensorflow-model-server
注:在上述命令中,如果处理器不支持AVX指令,请将tensorflow-model-server
替换为tensorflow-model-server-universal
。
git clone --recurse-submodules https://github.com/tensorflow/serving
cd serving
–recurse-submodules需要获取TensorFlow serving所依赖的TensorFlow,gRPC和其他库。 请注意,这些说明将安装TensorFlow Serving的最新主分支。 如果你想安装一个特定的分支(比如一个release 分支),把-b
传给git clone命令。
按照上面的先决条件部分安装所有依赖项。 配置TensorFlow,运行
cd tensorflow
./configure
cd ..
如果您在设置TensorFlow或其依赖项时遇到任何问题,请参阅TensorFlow安装说明。
TensorFlow Serving 使用Bazel build。 使用Bazel命令来构建单个目标或整个源代码树。
要构建整个树,请执行:
bazel build -c opt tensorflow_serving/...
二进制文件放在bazel-bin目录下,可以使用如下命令运行:
bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server
要测试您的安装,请执行:
bazel test -c opt tensorflow_serving/...
有关运行TensorFlow服务的更深入示例,请参阅基本教程和高级教程。
可以使用一些特定于平台的指令集(例如AVX)进行编译,这可以显着提高性能。 无论您在文档中看到“bazel build”,都可以添加标志-c opt –copt = -msse4.1 –copt = -msse4.2 –copt = -mavx –copt = -mavx2 –copt = -mfma –copt = -O3(或这些标志的一些子集)。 例如:
bazel build -c opt --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-O3 tensorflow_serving/...
注意:这些指令集在所有机器上都不可用,特别是对于较旧的处理器,所以它可能不适用于所有的标志。 你可以尝试一些子集,或者恢复到保证在所有机器上工作的基本“-c opt”。
参考:http://geek.csdn.net/news/detail/194233
我们使用TensorFlow ci_build基础架构进行continuous integration build,为您提供使用docker的简化开发。 所有你需要的是git和docker。 无需手动安装所有其他依赖项。
git clone --recursive https://github.com/tensorflow/serving
cd serving
CI_TENSORFLOW_SUBMODULE_PATH=tensorflow tensorflow/tensorflow/tools/ci_build/ci_build.sh CPU bazel test //tensorflow_serving/...
# GPU版本 将上面的CPU 改成 GPU
注意:serving 目录映射到容器中。 你可以在Docker容器之外进行开发(在你最喜欢的编辑器中),当你运行这个构建时,它将随着你的改变而建立。