【问题标题】:Warning During upgrading a Tensorflow 1 code to Tensorflow 2 code将 Tensorflow 1 代码升级到 TensorFlow 2 代码期间的警告
【发布时间】:2020-10-28 07:29:53
【问题描述】:

我正在尝试将现有的 TF1 代码转换为 google colab 上的 TF2 代码。运行命令后,我收到 14 条警告消息:!tf_upgrade_v2 --infile medgan.py --outfile medgan_upgraded.py

警告:tf.get_variable 需要手动检查。 tf.get_variable 在 2.0 中默认返回 ResourceVariables,它具有明确定义的语义并且对形状更严格。您可以通过传递 use_resource=False 或调用 tf.compat.v1.disable_resource_variables() 来禁用此行为。

我是 tensorflow 的新手,不知道这个命令是什么意思。在保存升级的 .py 文件之前,我的下一步应该是什么?我应该担心这些警告吗? TF 通过这个警告告诉我该怎么做?谢谢。

【问题讨论】:

    标签: python tensorflow google-colaboratory tensorflow2.0


    【解决方案1】:

    使用自动化脚本将代码从 Tensorflow 1.x 迁移到 Tensorflow 2.x 只会执行初始传递。但在此过程中,您需要注意有很多东西不属于Tensorflow 2.x 实现,例如placeholderssessionscollections、tf.contrib,以及其他1.x 功能,包括variables 行为的变化。

    首先,让我告诉你tf.get_variabletf.Variable之间的区别。

    tf.get_variable 从图中获取具有指定参数的现有变量,如果它不存在,则创建一个新变量,而 tf.Variable 将始终创建一个新变量,即使传递了相同的名称,Tensorflow将使用后缀 variable_name_1 分配新名称。

    Tensorflow 2.x 中使用tf.Variable 默认创建一个资源变量,默认情况下启用急切执行。

    除非您在使用变量时遇到问题,否则您不必担心此警告。 如果你想禁用资源变量tf.compat.v1.disable_resource_variables() 被贬值,你可以在tf.get_variable() 中使用use_resource= False,当Tensorflow 2.x 默认启用急切执行时,它将被强制为true。

    您可以从 Tensorflow 的 this 文档中查看迁移代码期间要进行的所有其他更改和观察。

    【讨论】:

      猜你喜欢
      • 2020-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-24
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      相关资源
      最近更新 更多