Как внедрить пакетную норму в Tensorflow, как повторно использовать бета и гамму, но не использовать повторно скользящее среднее и скользящую дисперсию одновременно? - PullRequest
0 голосов
/ 10 сентября 2018

В настоящее время я хочу построить две сверточные нейронные сети с использованием тензорного потока.Кроме того, я также использую пакетную норму в своих сетях (например, 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

Однако, таким образом, все переменные в пакетной норме, включая бета, гамму,moving_mean, moving_variance будет полностью установлен reuse = True или reuse = False.Но я хочу только повторно использовать bata и gamma, а не повторно использовать moving_mean и moving_variance.

Реализация пакетной нормы сама по себе является одним из решений, но мне интересно, может ли какая-либо функция тензорного потока сделать эти вещи для меня, так чтовсе, что мне нужно сделать, это установить некоторый параметр True или передать его в тензор.

Большое спасибо!

...