关于在 Keras 中设置 Activation 和 BatchNormalization 的方法

Regarding the way to setup Activation and BatchNormalization in Keras

我曾经在Keras

中看到卷积层定义如下
x = Convolution2D(128, kernel, kernel, border_mode='same')(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = Convolution2D(128, kernel, kernel, border_mode='same')(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)

在我看来 Activation 也可以在 Convolution2D 中设置。像上面这样在独立层设置Activation的原因是什么?而且,在Convolution2DActivation之间,有BatchNormalization,可不可以把BatchNormalization移到Activation之后?那会有什么不同吗?

这不是一个定论。大多数人在激活函数之前都有批量归一化。然而,在实践中,一些人发现在激活函数之后进行批量归一化也有效,据我所知,对于什么更好还没有达成共识。我建议您尝试针对您的特定问题和数据。但是不要期望有任何重大差异。