如何在 Flux.jl 中向我的模型添加批量归一化层

How do I add a Batch Normalization layer to my model in Flux.jl

我有一个我定义的简单模型,但我希望它使用批量归一化,这样我就不必手动计算和提供归一化。该模型目前看起来像:

m = Chain(
  Dense(28^2, 64),
  Dense(64, 10),
  softmax)

如何编辑此模型以添加 BN 层或一起定义一个新层?

使用 Flux.jl 的内置批量规范化功能,您可以执行以下操作:

m = Chain(
  Dense(28^2, 64),
  BatchNorm(64, relu),
  Dense(64, 10),
  BatchNorm(10),
  softmax)

其中 relu 是标准化后发生的逐元素激活。您可以阅读为什么我们在这样的示例中使用 relu 函数:https://stats.stackexchange.com/questions/226923/why-do-we-use-relu-in-neural-networks-and-how-do-we-use-it. Find out more about the BatchNorm function in the Flux.jl docs.