我在Digits中使用python图层以随机大小裁剪裁剪每个训练图像,然后使用cv2.resize方法调整大小到预期的顶部尺寸。
在保存的一批图像上离线使用时,调整大小按预期工作,numpy数组可以正确调整大小(128x3x227x227)。
当使用数字中的python层时,我得到代码-11错误。 Caffe输出日志显示:
I1212 12:11:41.999608 14949 solver.cpp:291] Solving
I1212 12:11:41.999610 14949 solver.cpp:292] Learning Rate Policy: fixed
I1212 12:11:42.001058 14949 solver.cpp:349] Iteration 0, Testing net (#0)
I1212 12:11:42.001065 14949 net.cpp:693] Ignoring source layer train-data
*** Aborted at 1481541102 (unix time) try "date -d @1481541102" if you are using GNU date ***
PC: @ 0x7f7c46b63acf cv::resize()
*** SIGSEGV (@0x0) received by PID 14949 (TID 0x7f7c564d0ac0) from PID 0; stack trace: ***
@ 0x7f7c53b734b0 (unknown)
@ 0x7f7c46b63acf cv::resize()
@ 0x7f67e132d736 pyopencv_cv_resize()
@ 0x7f7c547a8c55 PyEval_EvalFrameEx
@ 0x7f7c548d301c PyEval_EvalCodeEx
@ 0x7f7c548292e0 (unknown)
@ 0x7f7c547fc1e3 PyObject_Call
@ 0x7f7c5487031c (unknown)
@ 0x7f7c547fc1e3 PyObject_Call
@ 0x7f7c548d2447 PyEval_CallObjectWithKeywords
@ 0x7f7c54830f17 PyEval_CallFunction
@ 0x7f67f34add85 caffe::PythonLayer<>::Forward_cpu()
@ 0x7f7c55bc6207 caffe::Net<>::ForwardFromTo()
@ 0x7f7c55bc6577 caffe::Net<>::Forward()
@ 0x7f7c55be8dda caffe::Solver<>::Test()
@ 0x7f7c55be992e caffe::Solver<>::TestAll()
@ 0x7f7c55be9a4c caffe::Solver<>::Step()
@ 0x7f7c55bea5e9 caffe::Solver<>::Solve()
@ 0x40cf6f train()
@ 0x4088e8 main
@ 0x7f7c53b5e830 __libc_start_main
@ 0x4091b9 _start
@ 0x0 (unknown)
其他信息:
如果有人可以建议一种替代的插值方法来调整numpy nd-array的大小,那也非常有用
非常感谢
答案 0 :(得分:1)
解决了,由于cmake标志和virtualenv,这是caffe安装的问题。 我正在运行virtualenv中的数字,其中opencv-python版本是3.1.0 但是,在安装caffe时,cmake检查了系统opencv-python版本,即2.4.9,并相应地构建了caffe。 这就是错误,不正确的python绑定的原因。 为了解决它,使用opencv 2.4.9创建了一个新的virtualenv,并且已经从该环境启动了数字。