警告 将 Tensorflow 1 代码升级到 Tensorflow 2 代码期间



我正在尝试在谷歌colab上将现有的TF1代码转换为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() 来禁用此行为。

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

使用自动脚本将代码从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创建一个 Resource 变量作为默认值,默认情况下启用预先执行。

您不必担心此警告,除非您在变量使用中遇到行为。 如果要禁用资源变量tf.compat.v1.disable_resource_variables()已折旧,则可以在tf.get_variable()中使用use_resource= False,当在Tensorflow 2.x中默认启用紧急执行时,该变量将强制为 true。

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

最新更新