Config
model = dict(type='FastRCNN',backbone=dict(type='ResNet',depth=50,num_stages=4,out_indices=(0, 1, 2, 3),frozen_stages=1,norm_cfg=dict(type='BN', requires_grad=True),norm_eval=True,style='pytorch',init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),neck=dict(type='FPN',in_channels=[256, 512, 1024, 2048],out_channels=256,num_outs=5),roi_head=dict(type='StandardRoIHead',bbox_roi_extractor=dict(type='SingleRoIExtractor',roi_layer=dict(type='RoIAlign', output_size=7, sampling_ratio=0),out_channels=256,featmap_strides=[4, 8, 16, 32]),bbox_head=dict(type='Shared2FCBBoxHead',in_channels=256,fc_out_channels=1024,roi_feat_size=7,num_classes=1,bbox_coder=dict(type='DeltaXYWHBBoxCoder',target_means=[0.0, 0.0, 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='L1Loss', loss_weight=1.0))),train_cfg=dict(rcnn=dict(assigner=dict(type='MaxIoUAssigner',pos_iou_thr=0.5,neg_iou_thr=0.5,min_pos_iou=0.5,match_low_quality=False,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(rcnn=dict(score_thr=0.05,nms=dict(type='nms', iou_threshold=0.5),max_per_img=100)))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='LoadProposals', num_max_proposals=2000),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',mean=[123.675, 116.28, 103.53],std=[58.395, 57.12, 57.375],to_rgb=True),dict(type='Pad', size_divisor=32),dict(type='DefaultFormatBundle'),dict(type='Collect', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'])]test_pipeline = [dict(type='LoadImageFromFile'),dict(type='LoadProposals', num_max_proposals=None),dict(type='MultiScaleFlipAug',img_scale=(1333, 800),flip=False,transforms=[dict(type='Resize', keep_ratio=True),dict(type='RandomFlip'),dict(type='Normalize',mean=[123.675, 116.28, 103.53],std=[58.395, 57.12, 57.375],to_rgb=True),dict(type='Pad', size_divisor=32),dict(type='ImageToTensor', keys=['img']),dict(type='ToTensor', keys=['proposals']),dict(type='ToDataContainer',fields=[dict(key='proposals', stack=False)]),dict(type='Collect', keys=['img', 'proposals'])])]data = dict(samples_per_gpu=2,workers_per_gpu=2,train=dict(type='TableDataset',ann_file='data/icdar2019/test.json',img_prefix='data/icdar2019/test/TRACKA/',pipeline=[dict(type='LoadImageFromFile'),dict(type='LoadProposals', num_max_proposals=2000),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',mean=[123.675, 116.28, 103.53],std=[58.395, 57.12, 57.375],to_rgb=True),dict(type='Pad', size_divisor=32),dict(type='DefaultFormatBundle'),dict(type='Collect',keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'])],proposal_file='work_dirs/rpn_r50_fpn_1x_icdar2019/epoch_12.pkl'),val=dict(type='TableDataset',ann_file='data/icdar2019/test.json',img_prefix='data/icdar2019/test/TRACKA/',pipeline=[dict(type='LoadImageFromFile'),dict(type='LoadProposals', num_max_proposals=None),dict(type='MultiScaleFlipAug',img_scale=(1333, 800),flip=False,transforms=[dict(type='Resize', keep_ratio=True),dict(type='RandomFlip'),dict(type='Normalize',mean=[123.675, 116.28, 103.53],std=[58.395, 57.12, 57.375],to_rgb=True),dict(type='Pad', size_divisor=32),dict(type='ImageToTensor', keys=['img']),dict(type='ToTensor', keys=['proposals']),dict(type='ToDataContainer',fields=[dict(key='proposals', stack=False)]),dict(type='Collect', keys=['img', 'proposals'])])],proposal_file='work_dirs/rpn_r50_fpn_1x_icdar2019/epoch_12.pkl'),test=dict(type='TableDataset',ann_file='data/icdar2019/test.json',img_prefix='data/icdar2019/test/TRACKA/',pipeline=[dict(type='LoadImageFromFile'),dict(type='LoadProposals', num_max_proposals=None),dict(type='MultiScaleFlipAug',img_scale=(1333, 800),flip=False,transforms=[dict(type='Resize', keep_ratio=True),dict(type='RandomFlip'),dict(type='Normalize',mean=[123.675, 116.28, 103.53],std=[58.395, 57.12, 57.375],to_rgb=True),dict(type='Pad', size_divisor=32),dict(type='ImageToTensor', keys=['img']),dict(type='ToTensor', keys=['proposals']),dict(type='ToDataContainer',fields=[dict(key='proposals', stack=False)]),dict(type='Collect', keys=['img', 'proposals'])])],proposal_file='data/coco/proposals/rpn_r50_fpn_1x_val2017.pkl'))evaluation = dict(interval=1, metric='bbox')optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001)optimizer_config = dict(grad_clip=None)lr_config = dict(policy='step',warmup='linear',warmup_iters=500,warmup_ratio=0.001,step=[8, 11])runner = dict(type='EpochBasedRunner', max_epochs=12)checkpoint_config = dict(interval=1)log_config = dict(interval=50, hooks=[dict(type='TextLoggerHook')])custom_hooks = [dict(type='NumClassCheckHook'), dict(type='UploadHook')]dist_params = dict(backend='nccl')log_level = 'INFO'load_from = Noneresume_from = Noneworkflow = [('train', 1)]work_dir = './work_dirs/fast_rcnn_r50_fpn_1x_table_icdar2019'gpu_ids = range(0, 1)
前置基础知识
Config (定义了Config文件的格式以及引入的格式)
Registry (注册器实现编写Config文件实例化类)
Runner(实例化是实例化了,使用)
计算参数量
python tools/analysis_tools/get_flops.py configs/tabnet/fast_rcnn_r50_fpn_1x_table_icdar2019.py

