一行代码迁移TensorFlow 1.x到TensorFlow 2.0

2019 年 2 月 28 日 专知


【导读】TensorFlow 2.0将会包含许多API改变,例如改变参数顺序、重命名、修改默认值等。人工进行代码迁移比较繁琐,还有出错的风险。为了能让你的老代码和TensorFlow 2.0进行无缝迁移,TensorFlow开发组创建了tf_upgrade_v2功能。


当你用pip你装TensorFlow 2.0是,tf_upgrade_v2就已经被自动安装了,它可以加速你将已有的TensorFlow 1.13脚本迁移到TensorFlow 2.0。


仍有一些句法和风格改变是tf_upgrade_v2无法自动迁移的,这些变更无法用简单的字符串替换来实现。为了确保你的代码可以被TensorFlow 2.0支持,升级脚本包含了一个compat.v1模块。这个模块会将tf.foo形式的调用天环卫tf.compat.v1.foo。推荐的做法是尽快人工校对这些替换,并将它们迁移到tf.*命名空间下的新API而不是使用tf.compat.v1.*命名空间。


 另外,由于一些模块的废弃(例如tf.flags和tf.contrib),TensorFlow 2.0会包含一些无法通过切换到compat.v1来解决的变更。升级这些代码需要用到额外的库(如absl.flags)或者切换到tensorflow/addons包下的代码。


如果你想要将你的模型从1.12迁移到TensorFlow 2.0,首先安装tf-nightly-2.0-preview或tf-nightly-gpu-2.0-preview。


可以直接升级一个单独的Python脚本:

The upgrade script can be run on a single Python file:

tf_upgrade_v2 — infile foo.py — outfile foo-upgraded.py


也可以在目录中进行:

# upgrade the .py files and copy all the other files to the outtree
tf_upgrade_v2 — intree foo/ — outtree foo-upgraded/
# just upgrade the .py files
tf_upgrade_v2 — intree foo/ — outtree foo-upgraded/ — copyotherfiles False


脚本会列出一系列改变,例如参数更名:

关键字更名:

以及推荐的人工检查:


所有的信息都会被包含在当前文件夹的report.txt中。更新完成后,你可以运行模型来检查你的输出是否和1.13时的输出相似。


警告:

  • 在运行较本期按,不要手动升级代码。尤其是参数顺序变更的方法,例如tf.argmax或者tf.batch_to_space,这回导致脚本错误地添加关键词参数。

  • 脚本并不会重排序参数,而是添加关键词参数。


参考链接:

  • https://medium.com/tensorflow/upgrading-your-code-to-tensorflow-2-0-f72c3a4d83b5


-END-

专 · 知

专知《深度学习:算法到实战》课程全部完成!480+位同学在学习,现在报名,限时优惠!网易云课堂人工智能畅销榜首位!

欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程视频资料和与专家交流咨询!

请加专知小助手微信(扫一扫如下二维码添加),加入专知人工智能主题群,咨询《深度学习:算法到实战》课程,咨询技术商务合作~

请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料!

点击“阅读原文”,了解报名专知《深度学习:算法到实战》课程

登录查看更多
3

相关内容

TensorFlow 2.0中有多处更改,让用户使用更高效。TensorFlow 2.0删除冗余 APIs,使API更加一致(统一 RNNs,统一优化器),并通过Eager execution模式更好地与Python运行时集成。
【模型泛化教程】标签平滑与Keras, TensorFlow,和深度学习
专知会员服务
20+阅读 · 2019年12月31日
【干货】谷歌Joshua Gordon 《TensorFlow 2.0讲解》,63页PPT
专知会员服务
27+阅读 · 2019年11月2日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
39+阅读 · 2019年10月9日
TensorFlow 2.0新特性之Ragged Tensor
深度学习每日摘要
18+阅读 · 2019年4月5日
TensorFlow 2.0如何在Colab中使用TensorBoard
专知
17+阅读 · 2019年3月15日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
18+阅读 · 2019年1月16日
发布TensorFlow 1.4
谷歌开发者
7+阅读 · 2017年11月23日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
Generalization and Regularization in DQN
Arxiv
6+阅读 · 2019年1月30日
Attend More Times for Image Captioning
Arxiv
6+阅读 · 2018年12月8日
Arxiv
8+阅读 · 2018年11月27日
A General and Adaptive Robust Loss Function
Arxiv
8+阅读 · 2018年11月5日
Arxiv
4+阅读 · 2018年2月13日
Arxiv
3+阅读 · 2018年1月31日
VIP会员
相关VIP内容
【模型泛化教程】标签平滑与Keras, TensorFlow,和深度学习
专知会员服务
20+阅读 · 2019年12月31日
【干货】谷歌Joshua Gordon 《TensorFlow 2.0讲解》,63页PPT
专知会员服务
27+阅读 · 2019年11月2日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
39+阅读 · 2019年10月9日
相关资讯
TensorFlow 2.0新特性之Ragged Tensor
深度学习每日摘要
18+阅读 · 2019年4月5日
TensorFlow 2.0如何在Colab中使用TensorBoard
专知
17+阅读 · 2019年3月15日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
18+阅读 · 2019年1月16日
发布TensorFlow 1.4
谷歌开发者
7+阅读 · 2017年11月23日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
Top
微信扫码咨询专知VIP会员