本文将创建一个简单的Web App,应用户可以或许上传一幅图像,并对其运行Inception模型,实现图像的主动分类。
搭建TensorFlow办事开辟情况
Docker镜像
TensorFlow办事是用于构建许可用户在产品中应用我们供给的模型的办事器的对象。在开辟过程中,应用该对象的办法有两种:手工安装所有的依附项和对象,并大年夜源码开端构建;或应用Docker镜像。这里预备应用后者,因为它更轻易、更干净,同时许可在其他不合于Linux的情况中进行开辟。
如不雅不懂得Docker镜像,不妨将其想象为一个轻量级的虚拟机镜像,但它在运行时不须要以在个中运行完全的操作体系为价值。如不雅尚未安装Docker,请在开辟机中安装它,点击查看具体安装步调(https://docs.docker.com/engine/installation/)。
接下来须要为导出的模型创建一个办事器。
为了应用Docker镜像,还可应用笔者供给的文件(https://github.com/tensorflow/serving/blob/master/tensorflow_serving/tools/docker/Dockerfile.devel),它是一个用于在本地创建镜像的设备文件。要应用该文件,可应用下列敕令:
- docker build --pull -t $USER/tensorflow-serving-devel
- https://raw.githubusercontent.com/tensorflow/serving/master/
- tensorflow_serving/tools/docker/Dockerfile.devel
请留意,履行上述敕令后,下载所有的依附项可能须要一段较长的时光。
上述敕令履行完毕后,为了应用该镜像运行容器,可输入下列敕令:
- docker run -v $HOME:/mnt/home -p 9999:9999 -it $USER/
- tensorflow-serving-devel
该敕令履行后会将你的home目次加载到容器的/mnt/home路径中,并许可在个中的一个终端下工作。这是异常有效的,因为你可应用本身偏好的IDE或编辑器直接编辑代码,同时在运行构建对象时局应用该容器。它还会开放端口9999,使你可大年夜本身的主机中拜访它,并供今后将要构建的办事器应用。
键入exit敕令可退出该容器终端,使其停止运行,也可应用上述敕令在须要的时刻启动它。
Bazel工作区
因为TensorFlow办事法度榜样是用C++编写的,是以在构建时应应用Google的Bazel构建对象。我们将大年夜比来创建的容器内部运行Bazel。
Bazel在代码级治理着第三方依附项,并且只要它们也须要用Bazel构建,Bazel便会主动下载和构建它们。为了定义我们的项目将支撑哪些第三方依附项,必须在项目库的根目次下定义一个WORKSPACE文件。
我们须要的依附项是TensorFlow办事库。在我们的例子中,TensorFlow模型库包含了Inception模型的代码。
不幸的是,在撰写本书时,TensorFlow办事尚不支撑作为Git库经由过程Bazel直接引用,是以必须在项目中将它作为一个Git的子模块包含进去:
- # 在本地机械上
- mkdir ~/serving_example
- cd ~/serving_example
- git init
- git submodule add https://github.com/tensorflow/serving.git
- tf_serving
- git.submodule update - -init - -recursive
下面应用WORKSPACE文件中的local_repository规矩将第三方依附项定义为在本地存储的文件。此外,还需应用大年夜项目中导入的tf_workspace规矩对TensorFlow的依附项初始化:
- # Bazel WORKSPACE文件
- workspace(name = "serving")
- local_repository(
- name = "tf_serving",
- path = _workspace_dir__ + "/tf_serving",
- local_repository(
推荐阅读
传统的存储厂商正面对着前所未竽暌剐的压力。软件定义存储与公有云存储(也是基于横向扩大的SDS技巧)相浇忧⒛解决筹划正在蚕食传统的存储市场,如Dell EMC的VNX、HPE的Smart Array、NetApp的E系列和FAS。我同样认为>>>详细阅读
本文标题:面向机器智能的TensorFlow实践:产品环境中模型的部署
地址:http://www.17bianji.com/lsqh/34985.html
1/2 1