DAVAR-Lab-OCR icon indicating copy to clipboard operation
DAVAR-Lab-OCR copied to clipboard

您好,我参照 mmdetection的pytorch2onnx的写法进行了onnx的转换,出现下面的错误

Open cumthxy opened this issue 2 years ago • 4 comments

一直出现这个错误: RuntimeError: Can't call numpy() on Variable that requires grad. Use var.detach().numpy() instead

按照提示修改之后又是别的错误了。无法定位到问题的原因。请问你们将模型转换过onnx么? 或者不转换成onnx的话 还能转换成什么类型的呢?谢谢。 test的脚本能够正确运行的。 outs = ONNXTracedModule(f, _force_outplace, return_inputs, _return_inputs_states)(*args, **kwargs) File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 550, in call result = self.forward(*input, **kwargs) File "/usr/local/lib/python3.6/dist-packages/torch/jit/init.py", line 361, in forward self._force_outplace, File "/usr/local/lib/python3.6/dist-packages/torch/jit/init.py", line 348, in wrapper outs.append(self.inner(*trace_inputs)) File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 548, in call result = self._slow_forward(*input, **kwargs) File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 534, in _slow_forward result = self.forward(*input, **kwargs) File "/usr/local/lib/python3.6/dist-packages/mmcv/runner/fp16_utils.py", line 98, in new_func return old_func(*args, **kwargs) File "/home/data/new_mmdet/mmdetection/mmdet/models/detectors/base.py", line 183, in forward return self.forward_test(img, img_metas, **kwargs) File "/home/data/new_mmdet/mmdetection/mmdet/models/detectors/base.py", line 160, in forward_test return self.simple_test(imgs[0], img_metas[0], **kwargs) File "/home/data/DAVAR-Lab-OCR/davarocr/davar_table/models/detectors/lgpma.py", line 166, in simple_test global_seg_results = self.global_seg_head.get_seg_masks(global_seg_pred, img_metas, (h_img, w_img)) File "/home/data/DAVAR-Lab-OCR/davarocr/davar_table/models/seg_heads/gpma_mask_head.py", line 224, in get_seg_masks mask_pred = mask_pred.sigmoid().cpu().numpy() RuntimeError: Can't call numpy() on Variable that requires grad. Use var.detach().numpy() instead

cumthxy avatar Apr 02 '22 10:04 cumthxy

@cumthxy 你好,问一下这个问题,你解决了吗?能不能分享一下。感谢

xjl-le avatar Apr 11 '22 07:04 xjl-le

@cumthxy 你好,问一下这个问题,你解决了吗?能不能分享一下。感谢

按照这个提示修改就行。 onnx 只能导出模型 。不能导出中间处理。 所以得改改。之后就能导出了

cumthxy avatar Apr 11 '22 12:04 cumthxy

@cumthxy 感谢你的回答,我有一个疑问,LGPMA是基于mmdet来构建的,所有模型构建代码和推理代码都在mmdet库中,这就导致无法像mmdetection那样在每个模块中写onnx的推理代码,问一下,你是如果实现转onnx地,感谢

xjl-le avatar Apr 12 '22 08:04 xjl-le

  • 可以参考我这几天整理的转换示例 LGPMA_Infer
  • 但是由于转换和推理太耗费内存,暂时放弃。
  • 如果你们可以正常推理,欢迎交流。

SWHL avatar Jun 08 '22 10:06 SWHL