2016-04-19 40 views
3

在朱古力的AlexNet实现,我看到deploy.prototxt文件中的以下层:从神经网络是否需要在caffe的deploy.prototxt中定义丢弃层?

layer { 
    name: "drop7" 
    type: "Dropout" 
    bottom: "fc7" 
    top: "fc7" 
    dropout_param { 
    dropout_ratio: 0.5 
    } 
} 

现在辍学的核心思想是随机掉落单元(与它们的连接一起)期间训练。

这是否意味着我可以简单地从deploy.prototxt中删除此图层,因为此文件仅用于测试期间?

回答

9

是的。测试过程中不需要脱落。

即使您包含一个丢失图层,在测试过程中也没有什么特别的事情发生。见差直传的源代码:

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 
    } 

如在源代码中看到的那样,底部blob数据是如果它不是在训练阶段复制到顶部blob数据存储器。

相关问题