【问题标题】:caffe/digits: code -11 error when using python layer with cv.resizecaffe/digits:将 python 层与 cv.resize 一起使用时出现代码 -11 错误
【发布时间】:2017-04-27 13:02:54
【问题描述】:

我在 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)

附加信息:

  • 我离线测试 resize 方法的环境(当它工作时)与我用于 Digits/caffe 的环境相同
  • 我可以改用 scipy misc.imresize 方法,它按预期工作,但是 scipy 方法不保留原始 numpy 值,将它们转换回 0-256 范围内的 uint8,所以我不能使用它方法。它也比 cv2 慢得多(在离线批次上测试)

如果有人可以建议一种替代插值方法来调整 numpy nd-array 的大小,这也将非常有用

非常感谢

【问题讨论】:

    标签: opencv deep-learning caffe pycaffe nvidia-digits


    【解决方案1】:

    已解决,这是由于 cmake 标志和 virtualenv 导致的 caffe 安装问题。 我正在从 opencv-python 版本为 3.1.0 的 virtualenv 运行数字 然而,在安装 caffe 时,cmake 检查了系统 opencv-python 版本,即 2.4.9,并相应地构建了 caffe。 这就是错误的原因,不正确的 python 绑定。 为了解决这个问题,使用 opencv 2.4.9 创建了一个新的 virtualenv,并从该环境启动了 numbers。

    【讨论】:

      猜你喜欢
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 2018-06-16
      • 1970-01-01
      • 2012-09-16
      • 2020-07-10
      • 2017-04-13
      相关资源
      最近更新 更多