我在 Keras 上构建了我的 CNN,通常在ImageDataGenerator我看到rescale = 1. / 255用于将输入数据(像素值)从 [0-255] 标准化到 [0-1] 的过程中。然后我阅读了Batch Normalization Layer,我想知道它们是互斥的还是可以在同一个网络中一起使用?
我已经尝试将 BN 层调整到我的网络(每个激活层之后的 BN),但损失比不使用 BN 时波动更大。
我在 Keras 上构建了我的 CNN,通常在ImageDataGenerator我看到rescale = 1. / 255用于将输入数据(像素值)从 [0-255] 标准化到 [0-1] 的过程中。然后我阅读了Batch Normalization Layer,我想知道它们是互斥的还是可以在同一个网络中一起使用?
我已经尝试将 BN 层调整到我的网络(每个激活层之后的 BN),但损失比不使用 BN 时波动更大。
将输入重新缩放到 [0,1] 基本上并不重要。您的输入数据应该只是在相同的范围内。所以 [0,255] 也是一个合法的范围。
BN 应该有不同的解释。它有助于将整个网络的激活保持在同一水平。当我们谈论更深层次的架构时,它尤其有用。实际上,当您花费一些额外的时间/迭代时,您的网络也应该在没有 BN 的情况下收敛。