python - 在标准 CNN 上应用批量归一化的位置

标签 python machine-learning tensorflow conv-neural-network batch-normalization

我有以下架构:

Conv1
Relu1
Pooling1
Conv2
Relu2
Pooling3
FullyConnect1
FullyConnect2

我的问题是,我在哪里应用批量归一化?在 TensorFlow 中执行此操作的最佳函数是什么?

最佳答案

原文batch-norm paper规定在 ReLU 激活之前使用 batch-norm。但有证据表明, 激活后使用 batchnorm 可能更好。这是关于 Keras GitHub 的评论弗朗索瓦·肖莱:

... I can guarantee that recent code written by Christian [Szegedy] applies relu before BN. It is still occasionally a topic of debate, though.

关于你的第二个问题:在tensorflow中,你可以使用高级tf.layers.batch_normalization功能,或低级 tf.nn.batch_normalization .

关于python - 在标准 CNN 上应用批量归一化的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47143521/

相关文章:

Tensorflow:什么时候应该使用或不使用 `feed_dict` ?

python - 如何为keras使用自定义损失函数

python - 为什么 stack_data() 返回一个空数组?

python - 将列名传递给 Pandas read_csv() 函数

python - 选择特定列以计算 Pandas 中的行式总计

python - 使用 BaggingClassifier 时打印决策树和 feature_importance

python - Keras:为什么 model.fit() 返回与 model.evaluate() 相同的值?

python - 使用多项式朴素贝叶斯分类器时出现 ValueError

python - Tensorflow-gpu 问题(CUDA 运行时错误 : device kernel image is invalid)

Python - 对象的参数及其作为函数参数的值