1、TensorFlow是什么
- TensorFlow是Google的在深度学习领域非常或的开源软件库
- 采取数据流图,用于数值计算
- 支持多平台-GPU,CPU、移动设备
- 数据流图,如下:
节点:处理数据
线:节点简的输入输出关系
2、TensorFlow特性
- 高度的灵活性
- 真正的可移植性
- 产品和科研相结合
- 自动求微分
- 多语言支持(Python,R,C++,Java)
- 性能最优化
3、TensorFlow发展历程
- 2015年11月发布0.1版本
- 2017年2月发布1.0版本
- 2019年春发布2.0版本
4、TensorFlow 1.0
-
架构:
-
缺点:
- API混乱
- 入门困难,入了门依旧困难
- 大批研究人员转向PyTorch(语法接近python语法)
5、TensorFlow 2.0
-
主要特性
- 使用tf.keras 和eager mode 进行更加简单的模型构建
- 鲁棒的跨平台模型部署
- 强大的研究试验
- 清除不推荐使用的api和减少重复来简化api
-
架构:
-
简化的模型开发流程
- 使用tf.data加载数据
- 使用tf.keras构建模型,也可以使用怕热码的 estimator来验证模型
- 使用TensorFlow hub 进行迁移学习
- 使用eager mode 进行运行和调试
- 使用分发策略来进行分布式训练
- 到处到SavedModel
- 使用TensorFlow Server,TensorFlow Lite,TensorFlow js部署模型
-
强大的跨平台能力
- TensorFlow服务,直接通过http、rest或grpc协议缓冲区
- TensorFlow Lite-可部署在Android,iOS和嵌入式系统上
- TensorFlow js-在JavaScript中部署模型
- 其他语言:C,Java,Python,Go
-
强大的研究试验
- Keras功能API和子类API,允许创建复杂的拓扑结构
- 自定义训练逻辑,使用tf.GradientTap和tf.custom_gradient进行更细粒度的控制
- 底层API自始至终可以与高层结合使用,完全的可定制
- 高级扩展:Ragged Tensors,Tensor2Tensor等