我试图以下列方式访问一次创建的变量(或Tensor和变量altoghter,还不确定TF中这些定义的分离):
def C2d(Tensor, params):
with tf.variable_scope("conv"):
Tensor = tf.pad(Tensor, params)
conv = tf.contrib.layers.conv2d(Tensor, params)
return conv
with tf.variable_scope('scope1'):
var1 = C2d(Tensor, params)
with tf.variable_scope('scope1', reuse=True):
var2 = C2d(Tensor, params)
和
print(var1 == var2)
打印False
var1:
<tf.Tensor 'scope1/conv/Conv/Relu:0' shape=(475, 473, 256) dtype=float32>
var2: <tf.Tensor 'scope1_1/conv/Conv/Relu:0' shape=(475, 473, 256) dtype=float32>
如何通过此类函数调用获得相同的Tensor?
tf.contrib.layers.conv2d(...)
作为参数weigth_initializer
,如果我试图通过变量引用已经有初始化的现有张量,当我传递这个时会发生什么参数初始化器第二次?答案 0 :(得分:1)
实际上功能对我来说似乎是正确的,tf.contrib.layers.conv2d()
返回图层的输出,当你调用它两次时它会返回不同的输出是正常的。
如果检查图表中创建的变量,例如tf.global_variables()
,您将看到它只创建了由图层启动的变量的一个副本。
对于第二个问题,您可以将相同的变量初始值设定项传递给许多变量,因此它不应该冲突。