我的数据库是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
- 最终效果:https://blog.csdn.net/u013249853/article/details/79827501