maskrcnn 训练问题

2020-03-11 22:07:43,642 maskrcnn_benchmark.trainer INFO: Start training
Traceback (most recent call last):
  File "D:\Program Files\JetBrains\PyCharm Community Edition 2019.3.1\plugins\python-ce\helpers\pydev\pydevd.py", line 1434, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "D:\Program Files\JetBrains\PyCharm Community Edition 2019.3.1\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:/Users/15698/Domain-Adaptive-Faster-RCNN-PyTorch/tools/train_net.py", line 203, in <module>
    main()
  File "C:/Users/15698/Domain-Adaptive-Faster-RCNN-PyTorch/tools/train_net.py", line 196, in main
    model = train(cfg, args.local_rank, args.distributed)
  File "C:/Users/15698/Domain-Adaptive-Faster-RCNN-PyTorch/tools/train_net.py", line 84, in train
    cfg,
  File "C:\Users\15698\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 "D:\ProgramData\Anaconda3\envs\maskrcnn_benchmark\lib\site-packages\torch\utils\data\dataloader.py", line 345, in __next__
    data = self._next_data()
  File "D:\ProgramData\Anaconda3\envs\maskrcnn_benchmark\lib\site-packages\torch\utils\data\dataloader.py", line 856, in _next_data
    return self._process_data(data)
  File "D:\ProgramData\Anaconda3\envs\maskrcnn_benchmark\lib\site-packages\torch\utils\data\dataloader.py", line 881, in _process_data
    data.reraise()
  File "D:\ProgramData\Anaconda3\envs\maskrcnn_benchmark\lib\site-packages\torch\_utils.py", line 394, in reraise
    raise self.exc_type(msg)
AttributeError: Caught AttributeError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "D:\ProgramData\Anaconda3\envs\maskrcnn_benchmark\lib\site-packages\torch\utils\data\_utils\worker.py", line 178, in _worker_loop
    data = fetcher.fetch(index)
  File "D:\ProgramData\Anaconda3\envs\maskrcnn_benchmark\lib\site-packages\torch\utils\data\_utils\fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "D:\ProgramData\Anaconda3\envs\maskrcnn_benchmark\lib\site-packages\torch\utils\data\_utils\fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "C:\Users\15698\Domain-Adaptive-Faster-RCNN-PyTorch\maskrcnn_benchmark\data\datasets\coco.py", line 68, in __getitem__
    img, anno = super(COCODataset, self).__getitem__(idx)
  File "D:\ProgramData\Anaconda3\envs\maskrcnn_benchmark\lib\site-packages\torchvision\datasets\coco.py", line 118, in __getitem__
    img, target = self.transforms(img, target)
  File "C:\Users\15698\Domain-Adaptive-Faster-RCNN-PyTorch\maskrcnn_benchmark\data\transforms\transforms.py", line 15, in __call__
    image, target = t(image, target)
  File "C:\Users\15698\Domain-Adaptive-Faster-RCNN-PyTorch\maskrcnn_benchmark\data\transforms\transforms.py", line 60, in __call__
    target = target.resize(image.size)
AttributeError: 'list' object has no attribute 'resize'


首先这个问题出现是由于我下载的GitHub源码是别人的,不是Facebook官方的才导致。如果你也是从别人那下载的,很有可能别人改动了代码导致此bug。

解决方法:

定位:maskrcnn_benchmark/data/datasets/coco.py

line:66, 95, 96

self.transform 改为 self._transform

如果你的代码是 self._transform,那这里的情况可能不适用你,需要查找其他其原因。

另外一种问题:

‘Image’ object has no atrrribute ‘shape’

可能是由于 line: 95,95 中self.transform导致的

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

Modify the followed file.py:
maskrcnn_benchmark/structures/segmentation_mask.py
maskrcnn_benchmark/modeling/balanced_positive_negative_sampler.py

substitue for all torch.bool with torch.uint8

replacing dtype torch.uint8 with torch.bool for indexing in pytorch 1.2.0 #1126

https://github.com/facebookresearch/maskrcnn-benchmark/pull/1126

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值