马春杰杰 Exit Reader Mode

TypeError: div_(): argument ‘other’ (position 1) must be Tensor, not numpy.ndarray

又遇见一个坑,mmdet中的grid_rcnntest的时候,出现问题:

File "/media/mcj/mcj/mmdet2.x/tools/test.py", line 209, in <module>
    main()
  File "/media/mcj/mcj/mmdet2.x/tools/test.py", line 179, in main
    args.show_score_thr)
  File "/media/mcj/mcj/mmdet2.x/mmdet/apis/test.py", line 27, in single_gpu_test
    result = model(return_loss=False, rescale=True, **data)
  File "/home/sipl/anaconda3/envs/mm2/lib/python3.6/site-packages/torch/nn/modules/module.py", line 541, in __call__
    result = self.forward(*input, **kwargs)
  File "/media/mcj/mcj/mmdet2.x/mmcv/mmcv/parallel/data_parallel.py", line 42, in forward
    return super().forward(*inputs, **kwargs)
  File "/home/sipl/anaconda3/envs/mm2/lib/python3.6/site-packages/torch/nn/parallel/data_parallel.py", line 150, in forward
    return self.module(*inputs[0], **kwargs[0])
  File "/home/sipl/anaconda3/envs/mm2/lib/python3.6/site-packages/torch/nn/modules/module.py", line 541, in __call__
    result = self.forward(*input, **kwargs)
  File "/media/mcj/mcj/mmdet2.x/mmcv/mmcv/runner/fp16_utils.py", line 84, in new_func
    return old_func(*args, **kwargs)
  File "/media/mcj/mcj/mmdet2.x/mmdet/models/detectors/base.py", line 182, in forward
    return self.forward_test(img, img_metas, **kwargs)
  File "/media/mcj/mcj/mmdet2.x/mmdet/models/detectors/base.py", line 159, in forward_test
    return self.simple_test(imgs[0], img_metas[0], **kwargs)
  File "/media/mcj/mcj/mmdet2.x/mmdet/models/detectors/two_stage.py", line 199, in simple_test
    x, proposal_list, img_metas, rescale=rescale)
  File "/media/mcj/mcj/mmdet2.x/mmdet/models/roi_heads/grid_roi_head.py", line 164, in simple_test
    det_bbox[:, :4] /= img_metas[i]['scale_factor']
TypeError: div_(): argument 'other' (position 1) must be Tensor, not numpy.ndarray

报错说的倒是挺明白了,数据类型的问题。。

解决方法:

打开"/media/mcj/mcj/mmdet2.x/mmdet/models/roi_heads/grid_roi_head.py"文件,然后在

det_bbox[:, :4] /= img_metas[i]['scale_factor']这一行前面加上:

img_metas[i]['scale_factor'] = torch.from_numpy(img_metas[i]['scale_factor'])

本文最后更新于2021年8月23日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!