在Tensorflow中实现批量范数时,如何重用beta和gamma而不同时重用移动均值和移动方差?

2024-05-19 05:22:09 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我想用张量流建立两个卷积神经网络。此外,我也在我的网络中使用批量标准(tf.contrib.layers公司例如,.batch\u norm)。我希望这两个网络共享所有的权重,除了批量范数中的移动均值和移动方差。在

我的问题是,如果我只是这样定义一个重用变量范围:

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将全部设置为reuse=True或reuse=False。但我只想重用bata和gamma,而不重用移动平均值和移动方差。在

我自己实现批处理规范是一种解决方案,但是我想知道是否有任何tensorflow函数可以为我做这些事情,所以我只需要设置一些参数是真的或者传入一些张量。在

非常感谢!在


Tags: thefalsetruenormislayerstfbatch

热门问题