Caffe中,Net.hpp中loss_need_backward、blob_need_backward、layer_need_backward这三个变量的作用和它们之间的联系

Caffe源码
已邀请:

OutLaws

赞同来自: xinmiao GongGP

应该是layer_need_backward   blob_need_backward   bottom_need_backward, 我说下我的理解
首先,这3个变量都是和是否需要BP有关。而caffe在initializing一个网络的时候,判定一个layer是否need backward直接取决于layer_need_backward。而 blob_need_backward   bottom_need_backward就分别针对blob和bottom blob了,但是这两者对于layer_need_backward又是有影响的,比如这几行代码
need_backward |= blob_need_backward_[blob_id];

layer_need_backward_.push_back(need_backward);

if (!bottom_need_backward_[layer_id][bottom_id]) {  
const string& blob_name =
blob_names_[bottom_id_vecs_[layer_id][bottom_id]];
blobs_skip_backp.insert(blob_name);//为blobs_skip_backp添加新元素
}
所以还是要看看代码,这里有博文,可以参考一下:http://blog.csdn.net/iamzhangz ... 37240
 

要回复问题请先登录注册