目前,我想使用张量流构建两个卷积神经网络。此外,我还在网络中使用批处理规范(例如tf.contriib.layers.batch_norm)。我希望这两个网络在批处理范式中共享除moving_mean和moving_variance以外的所有权重。
我的问题是,如果我只是以这种方式定义重用变量范围:
def BatchNorm(x, is_reuse, *args):
with tf.variable_scope('Network', reuse=is_reuse):
return tf.contriib.layers.batch_norm(x, *args)
# set is_reuse = False when building the first NN
# set is_reuse = True when building the second one
但是,通过这种方式,批处理规范中的所有变量(包括beta,gamma,moving_mean,moving_variance)将全部设置为复用= True或复用= False。但是我只想重用bata和gamma,而不要重用moving_mean和moving_variance。
我自己执行批处理规范是一种解决方案,但是我想知道是否有任何tensorflow函数可以为我做这些事情,因此我只需要将一些参数设置为True或传递给某个张量即可。
非常感谢!