[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。

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