text: # model settings
  normalize = dict(type='GN', num_groups=32, frozen=False)
  
  model = dict(
  	type='MaskRCNN',
  	pretrained='/nfs/project/libo_i/mmdetection/models/mask_rcnn_r50_fpn_gn_2x_20180113-86832cf2.pth',
  	backbone=dict(
  		type='ResNet',
  		depth=50,
  		num_stages=4,
  		out_indices=(0, 1, 2, 3),
  		frozen_stages=1,
  		style='pytorch',
  		normalize=normalize),
  	neck=dict(
  		type='FPN',
  		in_channels=[256, 512, 1024, 2048],
  		out_channels=256,
  		num_outs=5,
  		normalize=normalize),
  	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],
  		use_sigmoid_cls=True),
  	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='ConvFCBBoxHead',
  		num_shared_convs=4,
  		num_shared_fcs=1,
  		in_channels=256,
  		conv_out_channels=256,
  		fc_out_channels=1024,
  		roi_feat_size=7,
  		num_classes=11,
  		target_means=[0., 0., 0., 0.],
  		target_stds=[0.1, 0.1, 0.2, 0.2],
  		reg_class_agnostic=False,
  		normalize=normalize),
  	mask_roi_extractor=dict(
  		type='SingleRoIExtractor',
  		roi_layer=dict(type='RoIAlign', out_size=14, sample_num=2),
  		out_channels=256,
  		featmap_strides=[4, 8, 16, 32]),
  	mask_head=dict(
  		type='FCNMaskHead',
  		num_convs=4,
  		in_channels=256,
  		conv_out_channels=256,
  		num_classes=11,
  		normalize=normalize))
  
  # 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,
  		smoothl1_beta=1 / 9.0,
  		debug=False),
  	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),
  		mask_size=28,
  		pos_weight=-1,
  		debug=False))
  test_cfg = dict(
  	rpn=dict(
  		nms_across_levels=False,
  		nms_pre=2000,
  		nms_post=2000,
  		max_num=2000,
  		nms_thr=0.7,
  		min_bbox_size=0),
  	rcnn=dict(
  		score_thr=0.05,
  		nms=dict(type='nms', iou_thr=0.5),
  		max_per_img=100,
  		mask_thr_binary=0.5))
  # dataset settings
  dataset_type = 'CocoDataset'
  data_root = '/nfs/project/libo_i/mmdetection/data/kitti/'
  img_norm_cfg = dict(
  	mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
  data = dict(
  	imgs_per_gpu=2,
  	workers_per_gpu=2,
  	train=dict(
  		type=dataset_type,
  		ann_file=data_root + 'annotations/training_new.json',
  		img_prefix=data_root + 'training/aug/',
  		img_scale=(1600, 1000),
  		img_norm_cfg=img_norm_cfg,
  		size_divisor=32,
  		flip_ratio=0.5,
  		with_mask=True,
  		with_crowd=True,
  		with_label=True),
  	val=dict(
  		type=dataset_type,
  		ann_file=data_root + 'annotations/training.json',
  		img_prefix=data_root + 'training/image_2/',
  		img_scale=(1333, 800),
  		img_norm_cfg=img_norm_cfg,
  		size_divisor=32,
  		flip_ratio=0,
  		with_mask=True,
  		with_crowd=True,
  		with_label=True),
  	test=dict(
  		type=dataset_type,
  		ann_file=data_root + 'annotations/testing.json',
  		img_prefix=data_root + 'testing/image_2/',
  		img_scale=(1600, 1000),
  		img_norm_cfg=img_norm_cfg,
  		size_divisor=32,
  		flip_ratio=0,
  		with_mask=True,
  		with_crowd=True,
  		with_label=False,
  		test_mode=True))
  # optimizer
  optimizer = dict(type='SGD', lr=0.01, 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=500,
  	warmup_ratio=1.0 / 3,
  	step=[16, 22])
  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 = 24
  dist_params = dict(backend='nccl')
  log_level = 'INFO'
  work_dir = './work_dirs/kitti_mask_rcnn_r50_fpn_gn_2x'
  load_from = None
  resume_from = None
  workflow = [('train', 1)]
  