Qaz*_*azi 4 caffe conv-neural-network
在caffe中的AlexNet实现中,我在deploy.prototxt文件中看到了以下层:
layer {
name: "drop7"
type: "Dropout"
bottom: "fc7"
top: "fc7"
dropout_param {
dropout_ratio: 0.5
}
}
Run Code Online (Sandbox Code Playgroud)
现在,辍学的关键思想是在训练期间从神经网络中随机丢弃单位(连同他们的连接).
这是否意味着我可以直接从deploy.prototxt中删除此图层,因为此文件仅用于测试期间?
Ano*_*bhu 10
是.测试期间不需要丢弃.
即使您包含一个dropout图层,测试期间也不会发生任何特殊情况.查看dropout forward pass的源代码:
if (this->phase_ == TRAIN) {
// Code to do something
} else {
caffe_copy(bottom[0]->count(), bottom_data, top_data); //Code to copy bottom blob to top blob
}
Run Code Online (Sandbox Code Playgroud)
如源代码所示,如果底部blob数据不在Training阶段,则会将其复制到top blob数据内存中.