tensorflow2.0基本动手04 (tensorflow2.0还在测试阶段吗)

TensorFlow2.0开发者测试版发布

【新智元导读】TensorFlow 2.0——开发者测试版来了!谷歌TF团队提供了一个“晚间版”,每晚更新,欢迎试用吐槽。

现在可以上手TensorFlow 2.0了!

谷歌机器智能团队负责分布式系统和并行计算的 Martin Wicke 今天在官博发布文章,介绍了名为 “TF2.0 晚间版”的版本,实际上是一个TensorFlow 2.0的开发者测试版。

听说过开发者版或者测试版,但没想到还有一个“开发者测试版”。

TensorFlow2.0开发者测试版发布

Wicke 表示,大家都知道谷歌TF团队正在努力筹备TensorFlow 2.0的发布。现阶段工作还在进行中,但是,对于那些想要抢先一步体验最前沿技术的开发者,现在有一个好消息——

TensorFlow 2.0的夜间版(nightly build version),可在pypi上预览发布使用:

  • tf-nightly-2.0-preview
  • tf-nightly-gpu-2.0-preview

也可以通过将 —config = v2 传递给 bazel命令 (运行configure之后) 从源构建。TensorFlow 2.0是从同一个源代码树构建的,因此如果你想从源代码构建,只需从master构建即可。

从 https://www.tensorflow.org/versions/r2.0/api_docs/python/tf (点击“浏览原文”访问) 获取TF开发团队每晚新生成的文档。因为夜间版正在积极开发中,因此文档有时可能会过时或者不完整。

Wicke表示,在TensorFlow 2.0的开发过程中,团队专注于可用性,并对定义 (specify) 和运行计算的方式做了重大更改。2018年秋季发布的RFC就体现了这一重大变化。

很多开发者都在 TF1.x 版本上做了大量共享 (对此谷歌TF团队表示很是感激!)。他们认为2.0版本将带来许多好处,让开发者的升级路径尽可能顺利。

pip软件包附带一个转换器工具,可以升级 (大多数的) 1.x TensorFlow代码,因此它可以在每晚安装2.0的情况下运行。tf_upgrade_v2这个工具使用了很多与 tf.compat.v1兼容的模块,包含在TensorFlow 1.x中所有的符号及其原始行为。需求注意的是,这个升级工具也处于开发当中,所以有可能无法在复杂项目上运行。

目前,这个TF2.0的晚间版本仍然不完整,并且正处于大力发展中。因此,谷歌TF团队不保证其稳定性,也知道这一版还欠缺一些功能 (例如,仅支持某些分发机制,特别是TPU支持还不完整),此外TensorFlow生态系统中相关的项目 (例如TFHub) 也还没有更新到能够和TensorFlow 2.0一起使用。

Wicke表示,他们将在 TF2.0-alpha 版本发布之前解决这些问题。

如果你试用了 TF2.0的这个晚间版,欢迎随时反馈你发现的问题。除了晚间版本身,对转换器工具和升级体验的反馈对都极具价值。

如何反馈问题?

在过去的几年里,TensorFlow开发团队通过审查了RFC,添加了许多新特性,并实现了TensorFlow 2.0的大部分功能。

这是该框架一个重要的里程碑,重点是易用性。

TensorFlow的成功离不开社区不懈的努力。TensorFlow团队也呼吁用户们在使用该产品的同时能够积极的将出现的问题进行反馈。

什么是好的问题反馈?

反馈一个bug

请在GitHub上提交所有的bug、错误和特性 (pecularity)。文档和实现之间的差异、缺乏文档、性能问题或兼容性问题都是可以反馈的内容。在反馈问题的时候,需求对问题进行详细的说明,并使用团队提供的“问题反馈模板”来进行动手:

Bug/性能相关问题

https://github.com/tensorflow/tensorflow/issues/new?template=00-bug-performance-issue.md

构建/安装相关问题

https://github.com/tensorflow/tensorflow/issues/new?template=10-build-installation-issue.md

文档相关问题

https://github.com/tensorflow/tensorflow/issues/new?template=20-documentation-issue.md

其它问题

https://github.com/tensorflow/tensorflow/issues/new?template=50-other-issues.md

若是一般性问题,可以将其提交到标记tensorflow的StackOverflow,或者提发送至邮箱discuss @ mailing group。

提交功能恳求

若是有功能相关的恳求,可以在GitHub上进行提交:

功能恳求

https://github.com/tensorflow/tensorflow/issues/new?template=30-feature-request.md

TensorFlow Lite Op恳求

https://github.com/tensorflow/tensorflow/issues/new?template=40-tflite-op-request.md

发送体验报告

如果想提交关于TensorFlow的一般反馈(特别是关于TensorFlow 2.0),请考虑提交friction log!

friction log是对产品进行吐槽或者赞美的文档,主要围绕特定的用例(例如,创建用于文本分类的LSTM模型)。

有关TensorFlow friction log的模板和示例,见下方链接:

https://docs.google.com/document/d/1_-0Zzn0hqS4ltLwqWAHm41-MgE60_9zlKyPHr5c-HCs/edit?usp=sharing

完成此类文档后,需将其通过电子邮件发送给测试团队:

[email protected]

如何参与?

从现在到TensorFlow 2.0预览版发布之前,团队将积极维护一个讨论组,以此来解决出现的任何问题、评论、建议或问题。

特殊兴趣小组(Special Interest Group,SIG)

TensorFlow的特殊兴趣小组(SIG),支持社区在特定项目上的合作。这些小组的成员共同构建和支持TensorFlow或与其相关项目的特定部分。

若是想要加入有关特定主题的讨论,可以订阅以下SIG邮件列表:

TensorBoard

插件开发、讨论和对TensorFlow可视化工具的贡献。

https://groups.google.com/a/tensorflow.org/d/forum/sig-tensorboard

网络

添加gRPC以外的网络协议。

https://groups.google.com/a/tensorflow.org/d/forum/networking

I/O

支持核心TensorFlow中不可用的文件系统和格式。

https://groups.google.com/a/tensorflow.org/d/forum/io

附加组件

TensorFlow的扩展,符合稳定的API。

https://groups.google.com/a/tensorflow.org/d/forum/addons

构建

关于TensorFlow分发和打包的讨论。

https://groups.google.com/a/tensorflow.org/d/forum/build

公布TensorFlow2.0设计过程,期待开发者积极参与

TensorFlow2.0开发者测试版发布

自2015年TensorFlow发布以来,它已经成为世界上使用最广泛的机器学习框架,满足了广大的用户和用例需求。在此期间,TensorFlow随着计算硬件、机器学习研究和商业部署的快速发展而得到进步。

为了反映这些快速变化,在2018年年底,TF开发团队就已经开始研究下一版本的TensorFlow。

TensorFlow 2.0将是一个重要的里程碑,重点关注易用性。以下是用户对TensorFlow 2.0的期望:

  • Eager execution应当是2.0的核心功能。它将用户对编程模型的期望与TensorFlow更好地结合起来,并且应该使TensorFlow更易于学习和应用。
  • 通过交换格式的标准化和API的一致性,支持更多平台和语言,并改善这些组件之间的兼容性和奇偶性。
  • 将删除已弃用的API并减少重复数量,否则会给用户造成混淆。

TF开发团队计划举行一系列公共设计评审。此过程将阐明即将成为TensorFlow 2.0一部分的功能,并允许社区提出修改意见。

兼容性和连续性

TensorFlow 2.0提供了一个纠正错误并进行改进的机会,而这些改进在语义版本控制下是禁止的。

为了简化过度(transition),将创建一个转换工具,该工具更新Python代码以使用与TensorFlow 2.0兼容的API,或者在无法自动进行转换的情况下会发出警告。

并不是所有的更改都可以完全自动进行。开发团队将弃用一些没有direct equivalent的API。

对于这种情况,将提供兼容模块(tensorflow.compat.v1),其中包含完整的TensorFlow 1.x API,并会在TensorFlow 2.x的生命周期内进行维护。

一旦最终版本的TensorFlow 2.0发布,预计不会在TensorFlow 1.x上有任何进一步的功能开发。 从TensorFlow 2.0发布之日起,将继续为TensorFlow 1.x版本发布一年的安全补丁。

磁盘(On-disk)兼容性

开发团队将不打算对SavedModels或存储的GraphDef进行重大更改(即,预计在2.0中包含所有当前版本的内核)。然而,2.0中的变化意味着在与新模型兼容之前,原始检查点(raw checkpoint)中的变量名可能必须进行转换。

tf.contrib

TensorFlow的contrib模块已经超出了在单一存储库中可以维护和支持的功能。较大的项目单独进行维护是比较好的,而开发团队将随着TensorFlow主代码一起孵化更小的扩展。因此,作为发布TensorFlow 2.0的一部分,开发团队将停止发布tf.contrib

目前,所有 tf.contrib 更新都已经停止。接下来,TF团队将与各自的所有者就详细的迁移计划进行合作,包括如何在社区页面和文档中公布你的TensorFlow扩展。对于每个contrib模块:

  • 将项目集成到TensorFlow中;
  • 将其移至单独的存储库;
  • 或者将其完全删除;

有关开发或迁移到TensorFlow 2.0的问题,请发送电子邮件至[email protected]。及时了解2.0开发的详细信息,请订阅 [email protected],并参与相关的设计审核。

TensorFlow 三年发展里程碑

  • TensorFlow是谷歌大脑的第二代机器学习系统。
  • 从0.8.0版本(发布于2016年4月)开始本地的支持分布式运行。
  • 从0.9.0版本(发布于2016年6月)开始支持iOS。
  • 从0.12.0版本(发布于2016年12月)开始支持Windows系统。该移植代码主要由微软贡献。
  • 1.0.0版本发布于2017年2月11日。虽然参考实现运行在单台设备,TensorFlow可以运行在多个CPU和GPU(和可选的CUDA扩展和图形处理器通用计算的SYCL扩展)。

TensorFlow2.0开发者测试版发布

2015年11月9日

宣布TensorFlow开源,根据 Apache 2.0 许可并以开放源代码软件包的形式发布了 TensorFlow API 和一个参考实现。

2015年12月

发布v0.6,支持GPU,Python 3.3

2016年4月

发布v0.8,分布式TensorFlow

2016年11月

发布v0.11,支持Windows

2017年2月

在首届TensorFlow开发者峰会上,正式发布TensorFlow 1.0。v1.0的性能得到改进,API变得稳定。TensorFlow1.0主要改进了机器学习功能,发布了XLA的实验版本,对Python和Java用户开放,提升了debugging,并且加入和改进了一些高级API,其中包括Keras。

2017年4月

发布v1.1,增加针对tf.keras的特性

2017年8月

发布v1.3,增加高级API,canned estimators,更多模型,原始TPU支持

2017年11月

发布v1.5,增加动态图机制Eager Execution 和用于移动端的轻量级TensorFlow Lite版本

2018年3月

发布TF Hub, TensorFlow.js?1777533666.267 , 和TensorFlow Extended (TFX)

2018年5月

发布v1.6,增加支持Cloud TPU,模型和pipeline

2018年6月

发布v1.8,Distribution Strategy API, TensorFlow Probability

2018年8月

发布v1.10,整合Cloud Bigtable

2018年10月

发布v1.12,大量API改进,包括改进XLA稳定性和性能,改进Keras模型支持

2019年

即将发布TensorFlow 2.0