Как выполнить Virtual Batch Normalization (VBN) в керасе - PullRequest
1 голос
/ 02 мая 2019

VBN говорят в Это бумага.И реализовано Здесь , Здесь и Здесь .Я не хочу идти в основной / полный код.Я просто хочу знать, как использовать VBN в качестве слоя keras, так как я не очень опытный кодер tenorflow / keras.Я обычно использую простую нормализацию партии (BN) следующим образом:

model.add(BatchNormalization(momentum=0.8))

Аналогичным образом, как использовать VBN вместо BN в следующем коде керас?

model.add(Dense(256,input_dim=self.input_dim))
model.add(LeakyReLU(alpha=.2))
model.add(BatchNormalization(momentum=0.8))%I want to replace this with VBN
model.add(Dense(512))
......
.......

1 Ответ

1 голос
/ 02 мая 2019

В первой ссылке они говорят

API __init__ предназначен для имитации tf.compat.v1.layers.batch_normalization как как можно ближе.

Итак, если вы посмотрите на https://www.tensorflow.org/api_docs/python/tf/layers/batch_normalization,
Там написано, что вы используете эту функцию как ...

x_norm = tf.layers.batch_normalization(x, training=training)

Так что, если я хорошо понимаю,
используя функциональный API https://keras.io/getting-started/functional-api-guide/,

Вы, вероятно, должны сделать что-то вроде:

layer_n = VBN(**kwargs, layer_n-1)

Надеюсь, это поможет

...