初步了解TensorFlow2.0

为什么要学习TensorFlow?

  1. 深度学习能够更好地抽取数据中的规律,从而给公司带来更大的价值
  2. TensorFlow是强大且灵活的开源框架
  3. 使用广泛
  4. 2.0更加强大、易用、成熟

TensorFlow是什么?

  1. 是Google的开源软件库
  2. 采用数据流图,用于数值计算
  3. 支持多平台——GPU、CPU、移动设备
  4. 最初用于深度学习,后越来越通用

数据流图是什么?

  1. 节点:处理数据
  2. 线:节点之间的输入输出关系,表示节点和节点之间的数据依赖
  3. 线上运输张量(tensor)
    • tensor:是所有n维数据;数字、向量、矩阵、高维矩阵
  4. 节点被分配到各种计算设备上运行

TensorFlow的特性

  1. 高度灵活性,体现在数据流图上,神经网络上
  2. 可移植性
  3. 产品和科研结合,封装较好,可直接作为产品使用
  4. 自动求微分,反向传播对微分的求解
  5. 多语言支持
  6. 性能最优化,运行快

2.0的主要特性

  1. 对Keras、eager mode进行更简单的模型构建
  2. 鲁棒的跨平台模型部署
    • TensorFlow服务
      -直接通过HTTP/REST或者GRPC/协议缓冲区
    • TensorFlow Lite——可部署在Android、iOS、嵌入式系统上
    • TensorFlow.js——在JavaScript中部署模型
    • 其他语言:C、java、Go、C#、Rust、Julia、R等
  3. 强大的研究实验
  4. 清除不推荐使用的、重复的API
  5. 2.0架构
    2.0 架构
  6. 2.0开发流程
    • 使用tf.data加载数据
    • 使用tf.keras构建模型,也可以用premade estimator来验证模型
      - 使用TensorFlow hub进行迁移学习
    • 使用eager mode进行运行和调试
    • 使用分发策略来进行分布式训练
    • 导出到SavedMode
    • 使用TensorFlow Serve、TensorFlow Lite、TensorFlow.js部署模型
  7. 强大的研究实验
    • Keras功能API和子类API,允许创建复杂的拓扑结构
    • 自定义训练逻辑,使用tf.GradientTape和tf.custom_gradient进行更细粒度的控制
    • 低层API自始至终可以和高层结合使用,完全是可定制
    • 添加高级扩展:Ragged Tensors、Tensor2Tensor等
posted @ 2020-07-25 12:06  二越  阅读(394)  评论(0)    收藏  举报