我正在尝试在谷歌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
实现,例如placeholders
、sessions
、collections
、tf.contrib
和其他 1.x 功能,包括variables
行为的变化。
首先,让我告诉你tf.get_variable
和tf.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 迁移代码期间要进行的所有其他更改和观察。