zhreshold / mxnet-yolo

YOLO: You only look once real-time object detector
MIT License
239 stars 88 forks source link

mxnet.base.MXNetError: Failed loading Op yolo_output of type _contrib_Yolo2Output: [13:11:48] src/core/op.cc:55: Check failed: op != nullptr Operator _contrib_Yolo2Output is not registered #36

Open guruvishnuvardan opened 6 years ago

guruvishnuvardan commented 6 years ago

Hi FOlks,

I have downloaded the yolo2_resnet50_416-symbol.jason and kept in models directory, but when i execute the video_demo.py, I get the following error, Can you please help me fix this, I jus wanna detect humans, so i guess the demo model will work ... Please correct me, If I am wrong

**amcsgpu@amcsgpu:~/Zero/mxnet-yolo-master$ python video_demo.py /home/amcsgpu/Zero/mxnet-yolo-master/model/yolo2_resnet50_416 Traceback (most recent call last): File "video_demo.py", line 109, in main() File "video_demo.py", line 85, in main detector = get_mxnet_detector(net, prefix, epoch, data_shape, mean_pixels, ctx=ctx,batch_size = 1) File "video_demo.py", line 43, in get_mxnet_detector detector = Detector(net, prefix, epoch, data_shape, mean_pixels, ctx=ctx,batch_size = 1) File "/home/amcsgpu/Zero/mxnet-yolo-master/detect/detector.py", line 34, in init load_symbol, args, auxs = mx.model.load_checkpoint(model_prefix, epoch) File "/usr/local/lib/python2.7/dist-packages/mxnet/model.py", line 420, in load_checkpoint symbol = sym.load('%s-symbol.json' % prefix) File "/usr/local/lib/python2.7/dist-packages/mxnet/symbol/symbol.py", line 2518, in load check_call(_LIB.MXSymbolCreateFromFile(c_str(fname), ctypes.byref(handle))) File "/usr/local/lib/python2.7/dist-packages/mxnet/base.py", line 146, in check_call raise MXNetError(py_str(_LIB.MXGetLastError())) mxnet.base.MXNetError: Failed loading Op yolo_output of type _contrib_Yolo2Output: [13:11:48] src/core/op.cc:55: Check failed: op != nullptr Operator _contrib_Yolo2Output is not registered

Stack trace returned 10 entries: [bt] (0) /usr/local/lib/python2.7/dist-packages/mxnet/libmxnet.so(+0x192112) [0x7fef4f4d2112] [bt] (1) /usr/local/lib/python2.7/dist-packages/mxnet/libmxnet.so(+0x4292c95) [0x7fef535d2c95] [bt] (2) /usr/local/lib/python2.7/dist-packages/mxnet/libmxnet.so(+0x42c49eb) [0x7fef536049eb] [bt] (3) /usr/local/lib/python2.7/dist-packages/mxnet/libmxnet.so(+0x42c9d10) [0x7fef53609d10] [bt] (4) /usr/local/lib/python2.7/dist-packages/mxnet/libmxnet.so(+0x42c35bf) [0x7fef536035bf] [bt] (5) /usr/local/lib/python2.7/dist-packages/mxnet/libmxnet.so(+0x24d65cf) [0x7fef518165cf] [bt] (6) /usr/local/lib/python2.7/dist-packages/mxnet/libmxnet.so(+0x4295f8d) [0x7fef535d5f8d] [bt] (7) /usr/local/lib/python2.7/dist-packages/mxnet/libmxnet.so(+0x24d7761) [0x7fef51817761] [bt] (8) /usr/local/lib/python2.7/dist-packages/mxnet/libmxnet.so(+0x24d65cf) [0x7fef518165cf] [bt] (9) /usr/local/lib/python2.7/dist-packages/mxnet/libmxnet.so(+0x4295f8d) [0x7fef535d5f8d]**

insanegtp commented 6 years ago

It's the problem that the contrib.YoloOutput is defined in the zhreshold/mxnet-yolo/mxnet/src/...., however, you run the script in the environment of new mxnet verison which has no contrib.YoloOutput. I encounter the same error. I solved it by copy src/..... .cu .h .cc(3 files related to YoloOutput) to my newer version mxnet source code and recompile the source code of the newer version of mxnet.

jacky4323 commented 6 years ago

Hi @insanegtp ,

I copy src/.... yolo_output* to my own mxnet and use cmake to build and I comment #import tools.find_mxnet in line2 demo.py then get below errors,Did you meet the same problems?thanks.

File "demo.py", line 100, in ctx, args.nms_thresh, args.force_nms) File "demo.py", line 43, in get_detector data_shape, mean_pixels, ctx=ctx) File "/home/jacky4323/BMXNet_yolo/mxnet-yolo/detect/detector.py", line 34, in init load_symbol, args, auxs = mx.model.load_checkpoint(model_prefix, epoch) File "/home/jacky4323/BMXNet_yolo/mxnet/python/mxnet/model.py", line 420, in load_checkpoint symbol = sym.load('%s-symbol.json' % prefix) File "/home/jacky4323/BMXNet_yolo/mxnet/python/mxnet/symbol/symbol.py", line 2494, in load check_call(_LIB.MXSymbolCreateFromFile(c_str(fname), ctypes.byref(handle))) File "/home/jacky4323/BMXNet_yolo/mxnet/python/mxnet/base.py", line 146, in check_call raise MXNetError(py_str(_LIB.MXGetLastError())) mxnet.base.MXNetError: Failed loading Op stack_downsample of type stack_neighbor: [18:03:20] /home/jacky4323/BMXNet_yolo/mxnet/nnvm/src/core/op.cc:55: Check failed: op != nullptr Operator stack_neighbor is not registered

carter54 commented 6 years ago

@jacky4323 I'm facing the same issue... Check failed: op != nullptr Operator stack_neighbor is not registered

carter54 commented 6 years ago

It seems only the yolo branch mxnet has stack_neighbor in src/operator/tensor/matrix_op.xx , while the master branch only has stack/stack_op

jacky4323 commented 6 years ago

@carter54 Can you solve this problems? only the yolo branch mxnet has stack_neighbor in matrix_op.xx,but the new yolo2-pr branch is the same as the master branch

zhreshold commented 6 years ago

stack_neighbor should not exists in latest models anymore, you guys can use the new pre-trained resnet model.