0 写在前面
官网有详细教程但令人难以下咽,网上找到了链接,但是也太啰嗦,简化如下。
1 具体操作
首先cd到你想转换的比如foo.py脚本下,终端运行
tf_upgrade_v2 --infile foo.py --outfile foo-upgraded.py
foo-upgraded.py就是转换后的代码
对于批量转换,可以使用目录树
转换目录下的所有文件:
tf_upgrade_v2 --intree foo/ --outtree foo-upgraded/
只转换.py文件
tf_upgrade_v2 --intree foo/ --outtree foo-upgraded/ --copyotherfiles False
转换之后可能常出现“tf.placeholder() is not compatible with eager execution”等问题,在转换后的代码加入以下代码即可
tf.compat.v1.disable_eager_execution()
2 注意事项
由于2.0弃用了某些模块不能简单转换,如下
由于我们弃用了某些模块(例如 tf.flags 和 tf.contrib),您将无法通过切换至 compat.v1 来实现 TensorFlow 2.0 中的某些变更。升级使用这些模块的代码可能需要额外使用一个库(如 absl.flags)或切换至 tensorflow/addons 中的软件包。