tensorflow2.0(简介)

tensorflow简介

一、tensorflow是什么

  • 采用数据流图,用于数值计算
  • 支持多种平台–GPU,CPU,移动设备
  • 最初用于深度学习,越来越通用–只要能描述为数据流图就可以用tensorflow解决

二、数据流图

tensorflow2.0(简介)_第1张图片

数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。

  • 节点----处理数据
  • 线----节点间的输入输出关系
  • 线上运输张量
  • 节点被分配到各种计算设备上运行

三、特性

  1. 高度的灵活性
  2. 可移植性强
  3. 产品和科研结合
  4. 自动求微分
  5. 多语言支持(python,c++,java,js)
  6. 性能最优化

Tensorflow版本变迁(略)

2015年开源发布

2019,2.0预览版本发布

一、Tensorflow1.0的主要特性

  • XLA–Accelerate Linear Algebra
  • 提升训练速度58倍
  • 可以在移动设备运行
  • 引人更高级别的API–tf.layers/tf.metrics/tf.losser/tf.keras
  • tensorflow调试器
  • 支持docker镜像,引入tensorflow serving服务

二、Tensorflow1.0架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SM3qcyJy-1575541670337)(/Users/bobwang/Library/Application Support/typora-user-images/image-20191202095236544.png)]

python封装的高级API

  • Keras
  • Estimator
  • Datasets
  • Layers
  • Distribution engine

三、tensorflow2.0的主要特性

  • 使用tf.kera,eager mode进行更加简单的模型构建
  • 跨平台模型部署
  • 强大的研究实验
  • 清除不推荐使用的API和减少重复来简化API

四、tensorflow2.0架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qqOTzChm-1575541670338)(/Users/bobwang/Library/Application Support/typora-user-images/image-20191202095801039.png)]

五、tensorflow2.0----简化的模型开发流程

  1. 使用tf.data加载数据
  2. 使用tf.keras构建模型,也可以使用premed estimator来验证模型(受用tensorflow hub进行迁移学习)
  3. 使用eager mode进行预行和调试
  4. 使用分发策略来进行分布式训练
  5. 导出大SavedModel
  6. 使用Tensorflow Serve、 Tensorflow lite、Tensorflow.js部署模型

六、tensorflow2.0–签到的跨平台能力

  1. tensorflow服务(直接通过HTTP/REST或GRPC/协议缓冲区)
  2. Tensorflow Lite----可部署在Android、IOS和嵌入式系统上
  3. tensorflow.js----在javascript中部署模型
  4. 其他语言

七、强大的研究实验能力

  • Keras功能API和子类API,允许创建复杂的拓扑结构
  • 自定义训练逻辑,使用tf.GradientTape和tf.custom_gradient进行更细粒度的控制
  • 低层API自始自终可以与高层结合使用,完全的可定制
  • 高级扩展: Ragged Tensors 、Tensor2Tensor等

tensorflow VS PyTorch

一、入门时间

1、tensorflow 1.*

(静态图,学习额外概念(图,会话,变量,占位符等),写样板代码)

2、tensorflow2.0

(动态图,Eager mode避免1.0圈点,直接集成在python中)

3、PyTorch

(动态图,Numpy的扩张,直接集成在python中)

二、图创建和调试

1、tensorflow 1.*

静态图,难调试, 学习tfdbg调试

2、tensorflow2.0 与Pycorch

动态图,python自带调试的工具

三、全面性

Pytorch缺少:

  • 沿维翻转张量(np.flip,np.flipud,np.fliplr)
  • 检查无穷和非数值张量(np.is_nan, np.is_inf)
  • 快速傅立叶变换(np.fft)

随着时间变化,越来越接近

四、序列化与部署

tf支持更加广泛

  • 图保存为protocol buffer
  • 跨语言
  • 跨平台

PyTorch支持比较简单,只导出图

你可能感兴趣的:(tensorflow)