[Caffe]:Check failed: out_num_ * inner_num_ == bottom[1]->count()

在caffe环境下运行语义分割网络的时候遇到这个问题,对caffe的运用还不是很熟悉,主要出现在SoftmaxWithLoss层和accuracy层,这是由于在网络中conv层和intep层中zoom和shrink的作用使得label和特征图的输入大小不一致,所以需要到日志中去看每层特征图的大小。
不能想当然认为interp层的输出特征图一定是偶数,它的输出特征图大小的计算方式如下:
shrink:
height_out_ = (height_in_ - 1) / shrink_factor + 1;
width_out_ = (width_in_ - 1) / shrink_factor + 1;
zoom:
height_out_ = height_in_ + (height_in_ - 1) * (zoom_factor - 1);
width_out_ = width_in_ + (width_in_ - 1) * (zoom_factor - 1);
解决该问题的具体操作是:1.卷积层中修改pad的大小,不使用zoom和shrink参数,而是将输出大小写死,如:height:96 width:96。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章