深度学习框架排行榜
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 |
运行TF Serving
1 | # docker run -p 8501:8501 \ |
这里需要注意的是,较早的docker版本没有“–mount”选项,比如Ubuntu16.04默认安装的docker就没有(我的环境是Ubuntu 18.04)。
客户端验证
1 |
|
返回结果
1 |
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