我的數據庫是NYU vesion1,大小是640×480,長乘高,segnet用的數據庫是480×360.如果直接用會出現unsampled的錯誤,unsampled的參數是長30,高23.
F0915 05:08:09.027793 45783 upsample_layer.cpp:63] Check failed: bottom[0]->height() == bottom[1]->height() (23 vs. 30) *** Check failure stack trace: *** @ 0x7fb4ab65ddaa (unknown) @ 0x7fb4ab65dce4 (unknown) @ 0x7fb4ab65d6e6 (unknown) @ 0x7fb4ab660687 (unknown) @ 0x7fb4aba6e718 caffe::UpsampleLayer<>::Reshape() @ 0x7fb4ab9d4bf2 caffe::Net<>::Init() @ 0x7fb4ab9d6952 caffe::Net<>::Net() @ 0x7fb4ab9bcbf0 caffe::Solver<>::InitTrainNet() @ 0x7fb4ab9bdbc3 caffe::Solver<>::Init() @ 0x7fb4ab9bdd96 caffe::Solver<>::Solver() @ 0x40c5d0 caffe::GetSolver<>() @ 0x406611 train() @ 0x404bb1 main @ 0x7fb4aab6ff45 (unknown) @ 0x40515d (unknown) @ (nil) (unknown)
考慮改變數據大小:
- 使用matlab默認的imresize函數進行調整大小
- 出現新問題:resize會不會改變rgb值,也就是rgb值是按照位置變動而進行的單純的復制,還是根據context插值計算的新的rgb,前者當然會失真,但是好處是標簽還是對應的。兩個重點,自變量是位置,保證特征圖與標簽同一像素縮小后落在同一位置;rgb的值不會改變,邊緣,contour還是那個contour。
- 舉例說明:因為你(9,0)處的RGB根據位置(9,0)被復制到了(3,0),那么對於標簽.png這個圖,當然他(9,0)也會被復制到同樣的位置,(3,0)。至此,才能說這一步並沒有帶來bug,實驗bug。
- 參考資料http://blog.csdn.net/colddie/article/details/7683492,http://blog.csdn.net/zhangla1220/article/details/41014541
- 最終出現了喜人的結果,舊錯誤消失,出現了新的錯誤。
- 代碼:http://www.cnblogs.com/SweetBeens/p/8572655.html