升级Tensorflow 1.x到Tensorflow 2.0

TensorFlow 2.0包含许多API更改,例如重新排序参数,重命名符号以及更改参数的默认值。 手动执行所有这些修改将很乏味并且容易出错。 为了简化更改,并尽可能无缝地过渡到TF 2.0,TensorFlow团队创建了tf_upgrade_v2实用程序来帮助将旧代码过渡到新API。

典型用法如下:
tf_upgrade_v2 \   --intree my_project/ \   --outtree my_project_v2/ \   --reportfile report.txt

通过将现有的TensorFlow 1.x Python脚本转换为TensorFlow 2.0,它将加速您的升级过程。转换脚本尽可能自动执行,但是仍然存在无法由脚本执行的语法和风格更改。
相容性模组
某些API符号不能仅通过使用字符串替换来升级。 为确保您的代码在TensorFlow 2.0中仍受支持,升级脚本包含compat.v1模块。 此模块用等效的tf.compat.v1.foo引用替换TF 1.x符号(如tf.foo)。 虽然兼容性模块不错,但我们建议您手动校对替换项,并尽快将其迁移到tf。*名称空间而不是tf.compat.v1名称空间中的新API。

由于TensorFlow 2.x模块的弃用(例如tf.flags和tf.contrib),因此无法通过切换到compat.v1来解决某些更改。 升级此代码可能需要使用其他库(例如,absl.flags)或切换到tensorflow / addons中的软件包。

推荐的升级过程
本指南的其余部分演示了如何使用升级脚本。虽然升级脚本易于使用,但强烈建议您将脚本用作以下过程的一部分:

  1. 单元测试:确保您要升级的代码具有覆盖范围合理的单元测试套件。这是Python代码,因此该语言不会保护您免受许多错误的困扰。还要确保您已经升级了与TensorFlow 2.0兼容的所有依赖项。
  2. 安装TensorFlow 1.14:将TensorFlow升级到最新的TensorFlow 1.x版本,至少为1.14。这包括tf.compat.v2中的最终TensorFlow 2.0 API。
  3. 使用1.14测试:确保您的单元测试此时通过。升级时会反复运行它们,因此从绿色开始很重要。
  4. 运行升级脚本:在整个源代码树(包括测试)上运行tf_upgrade_v2。这会将您的代码升级为仅使用TensorFlow 2.0中可用符号的格式。不推荐使用的符号将通过tf.compat.v1访问。这些最终将需要手动注意,但不是立即。
  5. 使用TensorFlow 1.14运行转换后的测试:您的代码在TensorFlow 1.14中仍然可以正常运行。再次运行单元测试。如果您的测试中有任何错误,则说明升级脚本中存在错误。请告诉我们。
  6. 检查升级报告中是否存在警告和错误:脚本编写了一个报告文件,解释了您应仔细检查的所有转换或需要执行的任何手动操作。例如:任何其他contrib实例将需要手动操作才能删除。请参阅RFC了解更多说明。
  7. 安装TensorFlow 2.0:此时安全地切换到TensorFlow 2.0
  8. 使用v1.disable_v2_behavior进行测试:在测试主函数中使用al v1.disable_v2_behavior()重新运行测试应获得与在1.14下运行相同的结果。
  9. 启用V2行为:现在您的测试使用v2 API进行了工作,您可以开始考虑启用v2行为了。根据代码的编写方式,这可能需要进行一些更改。有关详细信息,请参见迁移指南。

使用升级脚本
设定
在开始之前,请确保已安装TensorFlow 2.0。

!pip install -q tensorflow
from __future__ import absolute_import, division, print_function, unicode_literals
import tensorflow as tf
print(tf.__version__)

克隆tensorflow / models git存储库,以便您可以测试一些代码:

你可能感兴趣的:(升级Tensorflow 1.x到Tensorflow 2.0)