Tensorflow中共享变量之间的权重更新

时间:2018-04-05 14:31:58

标签: python tensorflow

我通过使用重用属性在两个层之间共享权重,但我发现它实际上共享变量的初始值。优化程序会更新权重,但该更新不会反映在其他图层中。

with tf.variable_scope('conv1'): 
layer1 = conv2d(x,output_features=out_features,kernel_size=kernel_size,padding=padding,strides=strides)

with tf.variable_scope('conv1', reuse=True):
        layer1 = conv2d(x_shaped,output_features=out_features,kernel_size=kernel_size,padding=padding,strides=strides)

如何在两个图层上反映更新?

1 个答案:

答案 0 :(得分:1)

conv2d一个名字。默认情况下,代码会找出一个名称,以便它不会重叠,这会导致创建2个不同的变量。

应该有一组变量。如果您看到两个,那么它们就不会被共享。

除此之外,您正确使用variable_scope。如果你想将它包装在一个你可以重用的函数中,还有tf.AUTO_REUSE