谱归一化层

[源代码]

SpectralNormalization

keras.layers.SpectralNormalization(layer, power_iterations=1, **kwargs)

对目标层的权重执行谱归一化。

此封装器通过约束权重的谱范数来控制层的权重的 Lipschitz 常数,这可以稳定 GAN 的训练。

参数

  • **layer**: 一个 keras.layers.Layer 实例,该实例具有 `kernel`(例如 `Conv2D`、`Dense`...)或 `embeddings` 属性(`Embedding` 层)。
  • **power_iterations**: int,归一化过程中的迭代次数。
  • **\*\*kwargs**: 基础封装器的关键字参数。

示例

封装 keras.layers.Conv2D

>>> x = np.random.rand(1, 10, 10, 1)
>>> conv2d = SpectralNormalization(keras.layers.Conv2D(2, 2))
>>> y = conv2d(x)
>>> y.shape
(1, 9, 9, 2)

封装 keras.layers.Dense

>>> x = np.random.rand(1, 10, 10, 1)
>>> dense = SpectralNormalization(keras.layers.Dense(10))
>>> y = dense(x)
>>> y.shape
(1, 10, 10, 10)

参考文献