3.1 Tensorflow
基础知识
3.1.1 深度学习框架介绍
框架对比:
1.技术层面
对于个人开发者,它的主要用途为科研,而企业用户的主要用途为进行AI应用,提升生产效率。在此,主要从两类用户的一些共同需求的满足情况进行分析,来完成各个深度学习框架在技术层面的对比。
可以看出tensorflow
、pytorch
、keras
三个深度学习框架遥遥领先其他深度学习框架的体量,另外几个国有深度学习框架的体量相对国外深度学习框架的体量也相差了较大的量级。
2.算法方向
对于算法的准确率、速度、参数量大小而言,不同的深度学习框架会有一定的影响,但本质的影响在于模型本身的架构设计以及训练时候的参数设置。
基本来说,企业或高校能够将一个深度学习框架开源出来,也就证明这个框架能够训练出达到正常性能的一些算法。因此,在此处更关注各个深度学习框架提供的算法优化功能
可以看出,各个深度学习框架在算法优化功能上大致是大同小异的。
官网地址(不需要翻墙):https://tensorflow.google.cn/
3.1.2 Tensorflow
具体流程
- 训练流程:
- 数据的处理︰使用
tf.data
和TFRecord
可以高效地构建和预处理数据集,构建训练数据流。同时可以使用TensorFlow Datasets
快速载入常用的公开数据集。 - 模型的建立与调试︰使用即时执行模式和著名的神经网络高层
API
框架Keras
,结合可视化工具TensorBoard
,简易、快速地建立和调试模型。也可以通过TensorFlow Hub
方便地载入已有的成熟模型。 - 模型的训练︰支持在CPU、GPU、TPU上训练模型,支持单机和多机集群并行训练模型,充分利用海量数据和计算资源进行高效训练。
- 模型的导出︰将模型打包导出为统一的
SavedModel
格式,方便迁移和部署。
- 部署流程
- 服务器部署∶使用
TensorFlow Serving
在服务器上为训练完成的模型提供高性能、支持并发、高吞吐量的API
。 - 移动端和嵌入式设备部署︰使用
TensorFlow Lite
将模型转换为体积小、高效率的轻量化版本,并在移动端、嵌入式端等功耗和计算能力受限的设备上运行,支持使用GPU代理进行硬件加速,还可以配合Edge TPU
等外接硬件加速运算。 - 网页端部署︰使用
TensorFlow.js
,在网页端等支持JavaScript
运行的环境上也可以运行模型,支持使用WebGL
进行硬件加速。