TensorFlow 2.0要来了,tf.contrib要砍了

2022-09-03 19:27:20 浏览数 (1)

邮件列举了以下几条:

· Eager Execution成为2.0的一个核心功能。这个命令式的编程环境,会让入门TensorFlow变得更容易。

· 支持更多平台、更多语言;通过交换格式的标准化以及API的协调,来提升组件之间的兼容性和对等性。

· 移除已弃用的API,并减少重复,也是减少用户的困惑。

往下,看看详情。

兼容性与连续性

邮件写到,TensorFlow 2.0是一个纠正错误做出改进的好机会。有些改善,在语义化版本控制 (Semantic Versioning) 之下,通常是做不到的。

为了顺滑地过渡到新版本,团队会做一个转换工具,用于更新Python代码,这样便能使用TensorFlow 2.0兼容的API了。

如果遇到无法自动转换的情况,系统也会提醒人类。想当年,向1.0过渡的时候,类似的工具也帮了大忙。

并非所有改变,都能自动完成。比如,新版本将会弃用一些API,而其中有些API并没有直接对等的替换。

针对这样的情况,TensorFlow会提供一个兼容模块 (tensorflow.compat.v1) ,里面有完整的TensorFlow 1.x API,并且在2.x的生命周期里,会得到持续的维护。

不过,一旦2.0正式版发布,1.x就不会再有任何功能更新了。但在那之后,团队还是会给最后一版1.x,提供一年安全补丁

磁盘兼容性

SavedModel和GraphDef,都不会发生什么重大的变化。

但2.0意味着,原始检查点 (Checkpoint) 里的变量名称,需要转换,才能跟新的模型兼容。

tf.contrib被砍了

contrib模块的成长,超出了TensorFlow团队 (在一个repo里) 能维护的范围。

Wicke说,更大的项目,分开维护可能会更好。

不过,团队依然会在2.0里孵化一些小型的扩展。

所以,2.0的一个重大的变化,就是tf.contrib完全弃用了。

在未来几个月,团队会与现有contrib模块的主人们,指定迁移计划,比如怎样在社区页面上或以文件的形式,发表自己的TensorFlow扩展。

每一个contrib模块,命运有三种:

1.集成到TensorFlow里。

2.移到一个单独的Repo里。

3.彻底移除。

0 人点赞