【导读】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知识资料!
点击“阅读原文”,了解报名专知《深度学习:算法到实战》课程