1
1
首先,一般来说,重用和变量作用域是不推荐使用的,将在TF2中删除。正如你在这里看到的,它们可能非常混乱。我们建议您使用tf.keras层来构建您的模型,只需重用对象就可以重用模型。 tf.get_variable和tf.variable_scope可以一起用于创建和重用模型中的变量。在变量范围内,一旦用变量名调用了get变量,用相同的变量名再次调用它是有问题的,因为tf无法判断您是要创建新变量还是要重用现有变量。如果传递reuse=false(默认选项),则会引发错误。如果传递reuse=true,我们将返回相同的旧变量。但是,如果您使用新的变量名调用get_variable并传递reuse=true,那么由于没有可重用的变量,我们也会引发错误。我们还有reuse=tf.auto_重用,它从不引发错误(如果变量存在则返回变量,如果不存在则创建变量)。 您还可以将重用作为参数传递给变量作用域,这意味着您将隐式地传递给该作用域中的所有get变量调用。 |
2
0
首先,变量范围的名称空间冲突。由于变量“model”已经存在,所以第二个变量“scope creation”必须是唯一的。TensorFlow自动将其统一为“Model_1”。再次尝试重复定义,如果将创建“model_2”变量_scope。 其次,reuse=true不适用于变量范围名称。它用于TensorFlow变量_范围内的tf.变量。 假设您想在两层之间使用tf.变量。在这种情况下,您将使用2个python变量指向同一个tf变量。 如果没有reuse=true,它将抛出一个错误,说明变量之类的东西已经存在。 当Reuse=true时,它给出了一个通行证。 |
Chris · 如何捕获导入脚本功能的打印 2 年前 |
Danijel · C中TensorFlow模型文件的路径? 2 年前 |
Arya Anish · tensorflow安装中面临的问题 2 年前 |