关于在 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
的原因是什么?而且,在Convolution2D
和Activation
之间,有BatchNormalization
,可不可以把BatchNormalization
移到Activation
之后?那会有什么不同吗?
这不是一个定论。大多数人在激活函数之前都有批量归一化。然而,在实践中,一些人发现在激活函数之后进行批量归一化也有效,据我所知,对于什么更好还没有达成共识。我建议您尝试针对您的特定问题和数据。但是不要期望有任何重大差异。
我曾经在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
的原因是什么?而且,在Convolution2D
和Activation
之间,有BatchNormalization
,可不可以把BatchNormalization
移到Activation
之后?那会有什么不同吗?
这不是一个定论。大多数人在激活函数之前都有批量归一化。然而,在实践中,一些人发现在激活函数之后进行批量归一化也有效,据我所知,对于什么更好还没有达成共识。我建议您尝试针对您的特定问题和数据。但是不要期望有任何重大差异。