训练mask rcnn实例分割时报错:
Traceback (most recent call last):
File "tools/train_net.py", line 203, in <module>
main()
File "tools/train_net.py", line 196, in main
model = train(cfg, args.local_rank, args.distributed)
File "tools/train_net.py", line 84, in train
cfg,
File "/home/lyh/Domain-Adaptive-Faster-RCNN-PyTorch/maskrcnn_benchmark/engine/trainer.py", line 137, in do_da_train
for iteration, ((source_images, source_targets, idx1), (target_images, target_targets, idx2)) in enumerate(zip(source_data_loader, target_data_loader), start_iter):
File "/opt/conda/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 819, in __next__
return self._process_data(data)
File "/opt/conda/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 846, in _process_data
data.reraise()
File "/opt/conda/lib/python3.6/site-packages/torch/_utils.py", line 385, in reraise
raise self.exc_type(msg)
IndexError: Caught IndexError in DataLoader worker process 0.
Original Traceback (most recent call last):
File "/opt/conda/lib/python3.6/site-packages/torch/utils/data/_utils/worker.py", line 178, in _worker_loop
data = fetcher.fetch(index)
File "/opt/conda/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/opt/conda/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/lyh/Domain-Adaptive-Faster-RCNN-PyTorch/maskrcnn_benchmark/data/datasets/coco.py", line 95, in __getitem__
target = target.clip_to_image(remove_empty=True)
File "/home/lyh/Domain-Adaptive-Faster-RCNN-PyTorch/maskrcnn_benchmark/structures/bounding_box.py", line 223, in clip_to_image
return self[keep]
File "/home/lyh/Domain-Adaptive-Faster-RCNN-PyTorch/maskrcnn_benchmark/structures/bounding_box.py", line 208, in __getitem__
bbox.add_field(k, v[item])
File "/home/lyh/Domain-Adaptive-Faster-RCNN-PyTorch/maskrcnn_benchmark/structures/segmentation_mask.py", line 203, in __getitem__
selected_polygons.append(self.polygons[i])
IndexError: list index out of range
解决方法:
修改以下两个文件,将文件中的torch.uint8改为torch.bool即可
maskrcnn_benchmark/structures/segmentation_mask.py
maskrcnn_benchmark/modeling/balanced_positive_negative_sampler.py