pos_assigned_gt_inds_list, gt_masks_list, cfg_list) TypeError: ‘NoneType‘ object is not iterable

在跑ELSA代码

python tools/train.py ./configs/elsa_swin/cascade_elsa_small_1x.py

具体报错如下:

2022-01-27 11:33:01,274 - mmdet - INFO - workflow: [(‘train’, 1)],
max: 12 epochs 2022-01-27 11:33:01,289 - mmdet - INFO - Checkpoints
will be saved to
/home/gong/pycharm/ELSA/det/work_dirs/cascade_elsa_small_1x by
HardDiskBackend. Traceback (most recent call last): File
“tools/train.py”, line 188, in
main() File “tools/train.py”, line 184, in main
meta=meta) File “/home/gong/pycharm/ELSA/det/mmdet/apis/train.py”, line 185, in
train_detector
runner.run(data_loaders, cfg.workflow) File “/home/gong/anaconda3/envs/elsa/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py”,
line 127, in run
epoch_runner(data_loaders[i], **kwargs) File “/home/gong/anaconda3/envs/elsa/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py”,
line 50, in train
self.run_iter(data_batch, train_mode=True, **kwargs) File “/home/gong/anaconda3/envs/elsa/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py”,
line 30, in run_iter
**kwargs) File “/home/gong/anaconda3/envs/elsa/lib/python3.7/site-packages/mmcv/parallel/data_parallel.py”,
line 75, in train_step
return self.module.train_step(*inputs[0], **kwargs[0]) File “/home/gong/pycharm/ELSA/det/mmdet/models/detectors/base.py”, line
247, in train_step
losses = self(**data) File “/home/gong/anaconda3/envs/elsa/lib/python3.7/site-packages/torch/nn/modules/module.py”,
line 889, in _call_impl
result = self.forward(*input, **kwargs) File “/home/gong/anaconda3/envs/elsa/lib/python3.7/site-packages/mmcv/runner/fp16_utils.py”,
line 128, in new_func
output = old_func(*new_args, **new_kwargs) File “/home/gong/pycharm/ELSA/det/mmdet/models/detectors/base.py”, line
181, in forward
return self.forward_train(img, img_metas, **kwargs) File “/home/gong/pycharm/ELSA/det/mmdet/models/detectors/two_stage.py”,
line 164, in forward_train
**kwargs) File “/home/gong/pycharm/ELSA/det/mmdet/models/roi_heads/cascade_roi_head.py”,
line 269, in forward_train
bbox_results[‘bbox_feats’]) File “/home/gong/pycharm/ELSA/det/mmdet/models/roi_heads/cascade_roi_head.py”,
line 193, in _mask_forward_train
sampling_results, gt_masks, rcnn_train_cfg) File “/home/gong/pycharm/ELSA/det/mmdet/models/roi_heads/mask_heads/fcn_mask_head.py”,
line 134, in get_targets
gt_masks, rcnn_train_cfg) File “/home/gong/pycharm/ELSA/det/mmdet/core/mask/mask_target.py”, line
59, in mask_target
pos_assigned_gt_inds_list, gt_masks_list, cfg_list) TypeError: ‘NoneType’ object is not iterable

pos_assigned_gt_inds_list, gt_masks_list, cfg_list) TypeError: ‘NoneType’ object is not iterable

我的数据集中没有mask,所以原先是将cascade_elsa_small_1x.py中的with_mask=True注释掉

# augmentation strategy originates from DETR / Sparse RCNN
train_pipeline = [
    dict(type='LoadImageFromFile'),
    # dict(type='LoadAnnotations', with_bbox=True, with_mask=True),
    dict(type='LoadAnnotations', with_bbox=True),	 # 把with_mask=True注释掉)
    dict(type='RandomFlip', flip_ratio=0.5),

还是报错,没记录具体的报错信息,大意是调用到mask-rcnn时还是需要mask。

于是,把主框架cascade网络换成了faster_rcnn
(即copy一份fast_rcnn下的fast_rcnn_r50_fpn_1x_coco.py,重命名为faster_rcnn_elsa_small_1x.py)

1. 把_base_的内容copy到这一份faster_rcnn_elsa的config文件中来,注释掉_base_内容
2. 修改backbone为ELSASwin的配置
3. 换一下neck的in_channels

# 主要三将backbone 和 neck的in_channels换一下
	backbone=dict(
        type='ELSASwin',
        embed_dim=96,
        depths=[2, 2, 18, 2],
        num_heads=[3, 6, 12, 24],
        window_size=7,
        mlp_ratio=4.,
        qkv_bias=True,
        qk_scale=None,
        drop_rate=0.,
        attn_drop_rate=0.,
        drop_path_rate=0.2,
        ape=False,
        patch_norm=True,
        out_indices=(0, 1, 2, 3),
        use_checkpoint=False),

    neck=dict(
        type='FPN',
        # in_channels=[96, 512, 1024, 1024],
        in_channels=[96, 192, 384, 768],
        out_channels=256,
        num_outs=5),

即可成功运行!

python tools/train.py ./configs/faster_rcnn/faster_rcnn_elsa_small_1x.py
'''
2022-01-27 15:57:38,667 - mmdet - INFO - workflow: [('train', 1)], max: 50 epochs
2022-01-27 15:57:38,668 - mmdet - INFO - Checkpoints will be saved to /home/gong/pycharm/ELSA/det/work_dirs/faster_rcnn_duanmian_dataAgu_v1_0907_3k by HardDiskBackend.
/home/gong/pycharm/ELSA/det/mmdet/models/dense_heads/rpn_head.py:192: UserWarning: In rpn_proposal or test_cfg, nms_thr has been moved to a dict named nms as iou_threshold, max_num has been renamed as max_per_img, name of original arguments and the way to specify iou_threshold of NMS will be deprecated.
  'In rpn_proposal or test_cfg, '
2022-01-27 15:58:58,647 - mmdet - INFO - Epoch [1][50/179]	lr: 9.890e-06, eta: 3:57:15, time: 1.600, data_time: 0.048, memory: 5911, loss_rpn_cls: 0.5789, loss_rpn_bbox: 0.0089, loss_cls: 0.2588, acc: 96.3984, loss_bbox: 0.0046, loss: 0.8513
2022-01-27 16:00:15,545 - mmdet - INFO - Epoch [1][100/179]	lr: 1.988e-05, eta: 3:51:23, time: 1.538, data_time: 0.002, memory: 5911, loss_rpn_cls: 0.1377, loss_rpn_bbox: 0.0102, loss_cls: 0.0613, acc: 99.0508, loss_bbox: 0.0272, loss: 0.2364
2022-01-27 16:01:32,466 - mmdet - INFO - Epoch [1][150/179]	lr: 2.987e-05, eta: 3:48:35, time: 1.538, data_time: 0.002, memory: 5911, loss_rpn_cls: 0.0592, loss_rpn_bbox: 0.0093, loss_cls: 0.0796, acc: 98.4688, loss_bbox: 0.0553, loss: 0.2035
2022-01-27 16:02:17,208 - mmdet - INFO - Saving checkpoint at 1 epochs
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 2/2, 0.2 task/s, elapsed: 11s, ETA:     0s2022-01-27 16:02:33,372 - mmdet - INFO - Evaluating bbox...
Loading and preparing results...
DONE (t=0.02s)
creating index...
index created!
Running per image evaluation...
Evaluate annotation type *bbox*
DONE (t=0.08s).
Accumulating evaluation results...
DONE (t=0.02s).
Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.422
Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=1000 ] = 0.851
Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=1000 ] = 0.500
Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = -1.000
Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = -1.000
Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.422
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.550
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=300 ] = 0.550
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=1000 ] = 0.550
Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.550
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值