首页 > 解决方案 > 如何在 keras 中执行虚拟批量标准化(VBN)

问题描述

本文讨论VBN 。并实现了HereHereHere。我不想去核心/完整代码。我只想知道,如何使用 VBN 作为 keras 层,因为我不是很专业的 tensorflow/keras 编码器。我一般使用简单的批量归一化(BN)如下

model.add(BatchNormalization(momentum=0.8))

以类似的方式,如何在以下 keras 代码中使用 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))
......
.......

标签: tensorflowkeraskeras-layertf.keras

解决方案


他们在第一个链接中说

__init__API 旨在尽可能地模仿 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)

我希望它有帮助


推荐阅读