Sense-X / TSD

1st place models in Google OpenImage Detection Challenge 2019
Apache License 2.0
455 stars 64 forks source link

It seems that the mmcv version does not match. #17

Open limengfei3675 opened 4 years ago

limengfei3675 commented 4 years ago

Hello, we use the command: python train.py ../configs/faster_rcnn_r152_fpn_TSD_1x.py --work_dir exp/TSD_r152/ --validate to train the network, throwing TypeError: init() got an unexpected keyword argument'bbox_roi_extractor'

python train.py ../configs/faster_rcnn_r152_fpn_TSD_1x.py --work_dir exp/TSD_r152/ --validate 2020-07-15 13:31:48,830 - mmdet - INFO - Environment info:

sys.platform: linux Python: 3.7.5 (default, Oct 25 2019, 15:51:11) [GCC 7.3.0] CUDA available: True CUDA_HOME: /usr/local/cuda-10.1 NVCC: Cuda compilation tools, release 10.1, V10.1.243 GPU 0: GeForce RTX 2080 Ti GCC: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 PyTorch: 1.5.0 PyTorch compiling details: PyTorch built with:

TorchVision: 0.6.0 OpenCV: 4.2.0 MMCV: 1.0.2 MMDetection: 2.3.0rc0+unknown MMDetection Compiler: GCC 7.3 MMDetection CUDA Compiler: 10.1

2020-07-15 13:31:48,831 - mmdet - INFO - Distributed training: False 2020-07-15 13:31:48,831 - mmdet - INFO - Config: /home/along/lmf_workspace/mmdetection/TSD-master/configs/faster_rcnn_r152_fpn_TSD_1x.py

model settings

model = dict( type='FasterRCNN', pretrained='torchvision://resnet152', backbone=dict( type='ResNet', depth=152, num_stages=4, out_indices=(0, 1, 2, 3), frozen_stages=1, norm_cfg=dict(type='BN', requires_grad=True), style='pytorch'), neck=dict( type='FPN', in_channels=[256, 512, 1024, 2048], out_channels=256, num_outs=5), rpn_head=dict( type='RPNHead', in_channels=256, feat_channels=256, anchor_scales=[8], anchor_ratios=[0.5, 1.0, 2.0], anchor_strides=[4, 8, 16, 32, 64], target_means=[.0, .0, .0, .0], target_stds=[1.0, 1.0, 1.0, 1.0], loss_cls=dict( type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0), loss_bbox=dict(type='SmoothL1Loss', beta=1.0 / 9.0, loss_weight=1.0)), bbox_roi_extractor=dict( type='SingleRoIExtractor', roi_layer=dict(type='RoIAlign', out_size=7, sample_num=2), out_channels=256, featmap_strides=[4, 8, 16, 32]), bbox_head=dict( type='TSDSharedFCBBoxHead', featmap_strides=[4, 8, 16, 32], num_fcs=2, in_channels=256, fc_out_channels=1024, roi_feat_size=7, num_classes=81, cls_pc_margin=0.3, loc_pc_margin=0.3, target_means=[0., 0., 0., 0.], target_stds=[0.1, 0.1, 0.2, 0.2], reg_class_agnostic=False, loss_cls=dict( type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0), loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)))

model training and testing settings

train_cfg = dict( rpn=dict( assigner=dict( type='MaxIoUAssigner', pos_iou_thr=0.7, neg_iou_thr=0.3, min_pos_iou=0.3, ignore_iof_thr=-1), sampler=dict( type='RandomSampler', num=256, pos_fraction=0.5, neg_pos_ub=-1, add_gt_as_proposals=False), allowed_border=0, pos_weight=-1, debug=False), rpn_proposal=dict( nms_across_levels=False, nms_pre=2000, nms_post=2000, max_num=2000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( assigner=dict( type='MaxIoUAssigner', pos_iou_thr=0.5, neg_iou_thr=0.5, min_pos_iou=0.5, ignore_iof_thr=-1), sampler=dict( type='RandomSampler', num=512, pos_fraction=0.25, neg_pos_ub=-1, add_gt_as_proposals=True), pos_weight=-1, debug=False)) test_cfg = dict( rpn=dict( nms_across_levels=False, nms_pre=1000, nms_post=1000, max_num=1000, nms_thr=0.7, min_bbox_size=0), rcnn=dict( score_thr=0.00, nms=dict(type='nms', iou_thr=0.5), max_per_img=100)

soft-nms is also supported for rcnn testing

# e.g., nms=dict(type='soft_nms', iou_thr=0.5, min_score=0.05)

)

dataset settings

dataset_type = 'CocoDataset' data_root = 'data/coco/' img_norm_cfg = dict( mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) train_pipeline = [ dict(type='LoadImageFromFile'), dict(type='LoadAnnotations', with_bbox=True), dict(type='Resize', img_scale=(1333, 800), keep_ratio=True), dict(type='RandomFlip', flip_ratio=0.5), dict(type='Normalize', img_norm_cfg), dict(type='Pad', size_divisor=32), dict(type='DefaultFormatBundle'), dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels']), ] test_pipeline = [ dict(type='LoadImageFromFile'), dict( type='MultiScaleFlipAug', img_scale=(1333, 800), flip=False, transforms=[ dict(type='Resize', keep_ratio=True), dict(type='RandomFlip'), dict(type='Normalize', img_norm_cfg), dict(type='Pad', size_divisor=32), dict(type='ImageToTensor', keys=['img']), dict(type='Collect', keys=['img']), ]) ] data = dict( imgs_per_gpu=2, workers_per_gpu=2, train=dict( type=dataset_type, ann_file=data_root + 'annotations/instances_train2017.json', img_prefix=data_root + 'train2017/', pipeline=train_pipeline), val=dict( type=dataset_type, ann_file=data_root + 'annotations/instances_val2017.json', img_prefix=data_root + 'val2017/', pipeline=test_pipeline), test=dict( type=dataset_type, ann_file=data_root + 'annotations/instances_val2017.json', img_prefix=data_root + 'val2017/', pipeline=test_pipeline)) evaluation = dict(interval=1, metric='bbox')

optimizer

optimizer = dict(type='SGD', lr=0.04, momentum=0.9, weight_decay=0.0001) optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))

learning policy

lr_config = dict( policy='step', warmup='linear', warmup_iters=3600, warmup_ratio=1.0 / 32, step=[9, 12]) checkpoint_config = dict(interval=1)

yapf:disable

log_config = dict( interval=50, hooks=[ dict(type='TextLoggerHook'),

dict(type='TensorboardLoggerHook')

])

yapf:enable

runtime settings

total_epochs = 14 dist_params = dict(backend='nccl') log_level = 'INFO' work_dir = './work_dirs/faster_rcnn_r50_fpn_1x' load_from = None resume_from = None workflow = [('train', 1)]

Traceback (most recent call last): File "train.py", line 151, in main() File "train.py", line 124, in main cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg) File "/home/along/lmf_workspace/mmdetection/mmdetection-master/mmdet/models/builder.py", line 67, in build_detector return build(cfg, DETECTORS, dict(train_cfg=train_cfg, test_cfg=test_cfg)) File "/home/along/lmf_workspace/mmdetection/mmdetection-master/mmdet/models/builder.py", line 32, in build return build_from_cfg(cfg, registry, default_args) File "/home/along/anaconda3/envs/lmf/lib/python3.7/site-packages/mmcv/utils/registry.py", line 167, in build_from_cfg return obj_cls(**args) TypeError: init() got an unexpected keyword argument 'bbox_roi_extractor'

songguanglu commented 4 years ago

Hi,TSD project has not been adapted to MMdetV2.0 and the code is wrote under v1.x version (The old v1.x branch works with PyTorch 1.1 to 1.4). You can use v1.x MMdet and the corresponding MMCV to run this code.

LoveIsAGame commented 3 years ago

I have also encountered this problem recently. Has this problem been well solved?

LoveIsAGame commented 3 years ago

Has anyone ported the code to mmdet2.0?

zhaoxin111 commented 3 years ago

refer to my environment:

PyTorch: 1.3.1 TorchVision: 0.4.2 OpenCV: 4.4.0 MMCV: 0.4.3 MMDetection: 1.1.0+144fc96 MMDetection Compiler: GCC 5.4 MMDetection CUDA Compiler: 10.2

LoveIsAGame commented 3 years ago

@zhaoxin111 how to install mmdetection1.1.0 . i just can install mmdet2.6? can give me some details? THANKS!!