tensorflow简介
Google开源的深度学习框架
- 采用数据流图,用于数值计算
- 节点-----处理数据
- 线-------节点间的输入输出关系
- 线上运输tensor张量(什么是tensor?tensor就是所有的n维数据,所有的n维数据就构成了tensorflow的数据集合。对于0维数据就是一个数字,一维数据就是向量,n维数据就是矩阵)
- 节点被分配到各种计算设备上运行
什么是算子?算子就是上图tensorflow数据流图中的节点所进行的各种各样的运算
- 支持多种平台---GPU、CPU、移动设备
- 最初用于深度学习,变得越来越通用
特性
-
高度的灵活性
-
真正的可移植性
-
产品和科研结合
-
自动求微分
-
多语言支持
-
性能最优化
Tensorflow版本变迁
Tensorflow1.0---主要特性
- XLA----Accelerate Linear Algebra加速线性代数
- 引入更高级别的API---tf.layers/tf.metrics/tf.losses/tf.keras
- Tensorflow调试器
- 支持docker镜像,引入tensorflow serving服务
- 静态图
Tensorflow2.0---主要特性
- 使用tf.keras和eager mode进行更加简单的模型构建
- 鲁棒的跨平台模型部署
- 强大的研究实验
- 清除不推荐使用的API和减少重复来简化API
Tensorflow2.0---简化的模型开发流程
-
使用tf.data加载数据
-
使用tf.keras构建模型,也可以使用premade estimator来验证模型(使用tensorflow hub进行迁移学习)
-
使用eager mode进行运行和调试
-
使用分发策略来进行分布式训练
-
导出到SavedModel
-
使用Tensorflow Serve、Tensorflow Lite、Tensorflow.js部署模型
Tensorflow2.0---强大的研究实验
- keras功能API和子类API,允许创建复杂的拓扑结构
2. 自定义训练逻辑,使用tf.GradientTape和tf.custom_gradient进行更细粒度的控制
3. 低层API自始至终可以与高层结合使用,完全的可定制
4. 高级拓展:Ragged Tensors、Tensor2Tensor等