Neural network Caffe:为什么部署(测试)中也存在退出层?

Neural network Caffe:为什么部署(测试)中也存在退出层?,neural-network,deep-learning,caffe,conv-neural-network,pycaffe,Neural Network,Deep Learning,Caffe,Conv Neural Network,Pycaffe,我知道辍学是为了有效的培训,避免过度适应和加速学习。但是,我不明白为什么在部署(测试)中也会看到它 我是否应该设置辍学率:1.0正在测试?TL;DR 不要触摸退出层。Caffe知道在推理过程中它不应该做任何事情 确实是对学习过程的有力补充,在推理时似乎没有影响。 然而,如果你考虑一个幼稚的实现,在训练时,你只将一些神经元设置为零,在测试时间,你必须补偿通过激活激活来激活所有神经元(以获得信号的相同的整体强度)。在这种情况下,推理时间“退出”成为一个简单的比例层(通过已知和固定的比例因子)。 幸

我知道辍学是为了有效的培训,避免过度适应和加速学习。但是,我不明白为什么在部署(测试)中也会看到它

我是否应该设置辍学率:1.0正在测试?

TL;DR
不要触摸退出层。Caffe知道在推理过程中它不应该做任何事情


确实是对学习过程的有力补充,在推理时似乎没有影响。
然而,如果你考虑一个幼稚的实现,在训练时,你只将一些神经元设置为零,在测试时间,你必须补偿通过激活激活来激活所有神经元(以获得信号的相同的整体强度)。在这种情况下,推理时间
“退出”
成为一个简单的比例层(通过已知和固定的比例因子)。
幸运的是,更深思熟虑的实现将此扩展作为训练的一部分(即,将一些神经元设置为零,同时将其余神经元扩展为预定义的),这样,在推理时,“退出”层完全[什么都不做][3]


要了解更多关于
“辍学”
对训练稳定性的贡献及其对网络泛化能力的影响,您可以阅读。

的第7.12节,因此将辍学层部署与否不会有什么区别,对吗?@NimaHatami如果您使用最新版本的
“辍学”进行训练
在培训期间进行扩展的层,然后从
deploy.prototxt
中完全删除辍学者。看看代码,caffe会将输入复制到输出,这是多余的,所以我想完全删除该层会稍微有效一些。