mmdetection在训练模型时报错
2021-05-31 11:49:32,954 - mmdet - INFO - Start running, host: root@iZ2zef8ry2enmkih0q7dlvZ, work_dir: /home/mmdetection/work_dirs/faster_rcnn_r50_fpn_1x_voc0712
2021-05-31 11:49:32,955 - mmdet - INFO - workflow: [('train', 1)], max: 12 epochs
Traceback (most recent call last):
File "tools/train.py", line 188, in <module>
main()
File "tools/train.py", line 177, in main
train_detector(
File "/home/mmdetection/mmdet/apis/train.py", line 170, in train_detector
runner.run(data_loaders, cfg.workflow)
File "/root/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 125, in run
epoch_runner(data_loaders[i], **kwargs)
File "/root/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 50, in train
self.run_iter(data_batch, train_mode=True, **kwargs)
File "/root/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 29, in run_iter
outputs = self.model.train_step(data_batch, self.optimizer,
File "/root/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/mmcv/parallel/data_parallel.py", line 67, in train_step
return self.module.train_step(*inputs[0], **kwargs[0])
File "/home/mmdetection/mmdet/models/detectors/base.py", line 237, in train_step
losses = self(**data)
File "/root/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/root/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/mmcv/runner/fp16_utils.py", line 95, in new_func
return old_func(*args, **kwargs)
File "/home/mmdetection/mmdet/models/detectors/base.py", line 171, in forward
return self.forward_train(img, img_metas, **kwargs)
File "/home/mmdetection/mmdet/models/detectors/two_stage.py", line 129, in forward_train
rpn_losses, proposal_list = self.rpn_head.forward_train(
File "/home/mmdetection/mmdet/models/dense_heads/base_dense_head.py", line 58, in forward_train
proposal_list = self.get_bboxes(*outs, img_metas, cfg=proposal_cfg)
File "/root/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/mmcv/runner/fp16_utils.py", line 182, in new_func
return old_func(*args, **kwargs)
File "/home/mmdetection/mmdet/models/dense_heads/anchor_head.py", line 578, in get_bboxes
result_list = self._get_bboxes(mlvl_cls_scores, mlvl_bbox_preds,
File "/home/mmdetection/mmdet/models/dense_heads/rpn_head.py", line 184, in _get_bboxes
dets, keep = batched_nms(mlvl_proposals, mlvl_scores, mlvl_ids,
File "/root/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/mmcv/ops/nms.py", line 269, in batched_nms
max_coordinate = boxes.max()
RuntimeError: operation does not have an identity.
这个错误信息表明mmcv库中的batched_nms函数存在问题。具体来说,错误信息指出该操作没有标识。当batched_nms函数的输入张量为空或包含无效值时,就会出现此错误。
要解决此问题,需要确保batched_nms函数的输入张量,并确保它不为空并包含有效值。
可能的解决方式:尝试将mmcv库更新到最新版本。
operation does not have an identity
检查下你的id