我可以在输入层之后直接使用批量归一化层而不对数据进行归一化吗?我可以期待得到相似的效果/性能吗?
在Keras的函数式API中,这将类似于以下代码:
x = Input (...)x = Batchnorm(...)(x)...
回答:
你可以这样做。但批量归一化的优点,除了稳定激活分布之外,还在于均值和标准差可能会随着网络的学习而变化。
实际上,在输入层之后立即设置批量归一化是一种高级的数据预处理步骤。它有帮助,有时帮助很大(例如在线性回归中)。但是一次性计算整个训练样本的均值和方差比每批学习要更简单和高效。请注意,批量归一化在性能方面并非免费的,你不应该滥用它。