路线图

上次更新时间:2018 年 4 月 27 日

TensorFlow 是一个快速发展的社区支持型项目。本文档旨在提供关于以下内容的指南:TensorFlow 核心开发者的优先事项和重点领域,以及即将推出的 TensorFlow 版本的预期功能。其中许多方面都是由社区用例推动的,我们欢迎各方人员进一步为 TensorFlow 做贡献

以下功能没有具体的发布日期。不过,大部分功能预计会在接下来发布的一到两个版本中推出。

API

高阶 API:

  • 借助 Estimator 轻松利用多个 GPU 和 TPU
  • 易于使用且预创建的高阶 Estimator,适用于梯度提升树、时间序列和其他模型

Eager Execution:

  • 高效利用多个 GPU
  • 支持分布式训练(多台机器)
  • 性能改进
  • 可以更简单地导出为 GraphDef/SavedModel

Keras API:

  • 更好地与 tf.data 相集成(能够调用包含数据张量的 model.fit
  • 全面支持 Eager Execution(提供对常规 Keras API 的 Eager 支持,并可以通过 Model 子类创建 Eager- 样式的 Keras 模型)
  • 更好的分布/多 GPU 支持和 TPU 支持(包括更顺畅的“模型到 Estimator”工作流程)

官方模型:

  • 一组模型,涵盖图片识别、语音、物体检测和翻译,体现了最佳做法,并可作为开发高性能模型的着手点。

Contrib:

  • 弃用了 tf.contrib 的部分内容(其中首选实现位于 tf.contrib 之外)。
  • 尽可能将 tf.contrib 中的大型项目移到单独的代码库中。
  • tf.contrib 模块将维持当前的形式并最终停用,未来将在其他代码库中进行实验性开发。

概率推理与统计分析:

  • tf.distributions 和 tf.probability 中提供了丰富的概率和统计分析工具,其中包括新的采样器、层、优化器、损失函数和结构化模型
  • 用于假设检验、收敛诊断和样本统计的统计工具
  • Edward 2.0:用于概率编程的高阶 API

平台

TensorFlow Lite:

  • 在 TensorFlow Lite 中涵盖更多支持的操作
  • 更轻松地转换经过训练的 TensorFlow 图,以便在 TensorFlow Lite 上使用
  • 在 TensorFlow Lite 中支持 GPU 加速(iOS 和 Android)
  • 通过 Android NeuralNets API 支持硬件加速器
  • 通过量化和其他网络优化(例如删减、蒸馏)提高 CPU 性能
  • 增加对非 Android 和 iOS 设备(例如,RPi、Cortex-M 设备)的支持

TensorFlow.js:

  • 发布通过 TensorFlow.js 后端接口将 Node.js 绑定到 TensorFlow C API 的程序包
  • 扩展对使用统一 API(这些 API 支持在浏览器中进行再训练)将 TensorFlow SavedModel 和 Keras 模型导入到浏览器的支持
  • 改进 Layers API,并允许导出/保存模型
  • 发布 tfjs-data API,以实现高效的数据输入管道

TensorFlow with Swift:

  • 建立开源项目,包括文档、开放式设计及代码可用性。
  • 在 2018 年,继续实施并完善实现方案和设计。
  • 致力于确保实现方案足够可靠,以在 2018 年后期投入广泛使用。

性能

分布式 TensorFlow:

  • 优化对多种 GPU 拓扑的多 GPU 支持
  • 改进在多台机器间分布计算工作的机制

GPU 优化:

  • 通过提供初始示例模型和指南简化混合精度 API。
  • 完成 TensorRT API,并将其纳入到核心项目中。
  • 在各种 TensorFlow 细分版本中,默认使用 CUDA 9.2 和 NCCL 2.x。
  • 针对 DGX-2 进行优化。
  • 取消支持低于 8.x 版的 CUDA 和低于 6.x 版的 cuDNN。

CPU 优化

  • 通过 MKL 为 SkyLake 提供 Int8 支持
  • 动态加载使用 SIMD 优化的内核
  • 适用于 Linux 和 Windows 的 MKL

端到端机器学习系统:

TensorFlow Hub:

  • 通过 TF Eager 集成、Keras 层集成和 TensorFlow.js 集成,扩展 TF Hub 中对模块类型的支持
  • 接受大小可变的图片输入
  • 改进多 GPU Estimator 支持
  • 记录并改进 TPU 集成

TensorFlow Extended:

  • 开放 TensorFlow Extended 平台的更多源代码,推动 TensorFlow 在生产环境中的采用。
  • 发布用于数据验证的 TFX 库

文档和资源:

  • 更新所有功能及 API 的文档、教程和入门指南
  • 每周更新 Youtube Tensorflow 频道,以放送新内容: Coding TensorFlow - 教大家使用 TensorFlow 进行编程 TensorFlow Meets - 重点介绍社区贡献 Ask TensorFlow - 回答社区提出的问题 嘉宾和展示视频
  • 定期更新官方 TensorFlow 博客,发布来自 Google 团队和社区的文章

社区和合作伙伴互动

特殊兴趣论坛:

  • 动员社区在重点领域开展合作
  • tf-distribute:构建和封装 TensorFlow
  • SIG TensorBoard、SIG Rust 以及更多有待确定和推出的论坛

社区:

  • 通过“请求评论”(RFC) 流程整合公众对重大设计决策的反馈
  • 正式确定将外部贡献纳入 TensorFlow 和相关项目的流程
  • 壮大全球 TensorFlow 社区和用户论坛
  • 与合作伙伴密切协作,共同撰写和发表研究论文
  • 提供流程,以便外部各方对展示以下内容的教程、文档和博客做贡献:TensorFlow 的最佳做法用例和具有重大影响的应用