keras 批量归一化而不是输入归一化

e7arh2l6  于 2023-08-06  发布在  其他
关注(0)|答案(2)|浏览(113)

我可以在输入层之后使用批量规范化层而不规范化我的数据吗?我可以期望获得类似的效果/性能吗?
在keras函数中,它是这样的:

x = Input (...)
x = Batchnorm(...)(x)
...

字符串

ve7v8dk2

ve7v8dk21#

你可以的但是batchnorm的好处是,除了激活分布的稳定性之外,平均值和标准偏差可能会随着网络的学习而迁移。
实际上,在输入层之后设置batchnorm是一个花哨的 * 数据预处理 * 步骤。有时候会有很大的帮助(例如:在线性回归中)。但是,一次性计算整个训练样本的均值和方差比逐批学习更容易,更有效。请注意,batchnorm在性能方面并不是免费的,您不应该滥用它。

fkvaft9z

fkvaft9z2#

是的,这是可能的,我已经非常成功地将其用于视觉模型。不过,这种方法也有一些优点和缺点,主要优点是:
1.在生产中集成模型时,您不能忘记规范化步骤,因为它是模型本身的一部分(这种情况比您想象的要频繁)。
1.规范化是以这种方式感知数据增强的。
其主要缺点是:
1.如果您已经有可用的标准化输入,则会增加执行阶段成本。
我在这里也详细地写过关于这个主题的文章:在Vision AI模型中,将手动归一化替换为批量归一化。https://towardsdatascience.com/replace-manual-normalization-with-batch-normalization-in-vision-ai-models-e7782e82193c

相关问题