docker-安装Tensorflow

深度学习框架排行榜

Figure 4 十大深度学习框架增长率(caffe,caffe2分开统计)

Google的TensorFlow,可以说是当今十分流行的深度学习框架。Airbnb,DeepMind,Intel,Nvidia,Twitter以及许多其他著名公司都在使用它。

官方文档地址

https://github.com/geektutu/tensorflow2-docs-zh

其他文档

https://github.com/lyhue1991/eat_tensorflow2_in_30_days

使用jupyter notebook

1
docker run -it -p 8888:8888 tensorflow/tensorflow:nightly-py3-jupyter
1
docker run --name my-tensorflow -it -p 8888:8888 -v ~/tensorflow:/test/data tensorflow/tensorflow

之后看到如下界面,

浏览器打开地址http://127.0.0.1:8888/?token=5acc7bab0800aefafa5d4df63acc671fb186657b6f272580

显示如下:

显示Jupyter Notebook,Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本。示例中已经显示了Tensorflow的入门教程,点开一个可以看见

如上面这个例子,是使用tensorflow来使两个array相加,我们点击run,就可以看到运行的结果了。

TensorFlow Servering使用

将训练好的模型直接上线并提供服务,TF Serving客户端和服务端的通信方式有两种(gRPC和RESTfull API)

服务框架

基于TF Serving的持续集成框架还是挺简明的,基本分三个步骤:

  • 模型训练
    这是大家最熟悉的部分,主要包括数据的收集和清洗、模型的训练、评测和优化;
  • 模型上线
    前一个步骤训练好的模型在TF Server中上线;
  • 服务使用
    客户端通过gRPC和RESTfull API两种方式同TF Servering端进行通信,并获取服务;

TF Serving的工作流程主要分为以下几个步骤:

  • Source会针对需要进行加载的模型创建一个Loader,Loader中会包含要加载模型的全部信息;
  • Source通知Manager有新的模型需要进行加载;
  • Manager通过版本管理策略(Version Policy)来确定哪些模型需要被下架,哪些模型需要被加载;
  • Manger在确认需要加载的模型符合加载策略,便通知Loader来加载最新的模型;
  • 客户端像服务端请求模型结果时,可以指定模型的版本,也可以使用最新模型的结果;

RESTfull API形式

1
docker pull tensorflow/serving

官方示例代码中包含已训练好的模型和与服务端进行通信的客户端(RESTfull API形式不需要专门的客户端)

1
2
3
# mkdir -p /tmp/tfserving
# cd /tmp/tfserving
# git clone https://github.com/tensorflow/serving

运行TF Serving

1
2
3
4
5
# docker run -p 8501:8501 \
--mount type=bind,\
source=/tmp/tfserving/serving/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_cpu,\
target=/models/half_plus_two \
-e MODEL_NAME=half_plus_two -t tensorflow/serving &

这里需要注意的是,较早的docker版本没有“–mount”选项,比如Ubuntu16.04默认安装的docker就没有(我的环境是Ubuntu 18.04)。

客户端验证

1
2
# curl -d '{"instances": [1.0, 2.0, 5.0]}' \
-X POST http://localhost:8501/v1/models/half_plus_two:predict

返回结果

1
# { "predictions": [2.5, 3.0, 4.5] }

TF Serving官方文档:

https://www.tensorflow.org/serving/

https://www.tensorflow.org/tfx/serving/docker

https://www.tensorflow.org/install/lang_java?hl=zh-cn

java调用训练好的模型

https://blog.csdn.net/u012350430/article/details/96272968

https://github.com/BeyonderXX/tensorflow-serving-tutorial

参考

https://juejin.im/post/5a8fea695188257a7450cb4c
https://www.jianshu.com/p/afe80b2ed7f0

https://www.baeldung.com/tensorflow-java

-------------本文结束-------------
0%