| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- # Runtime
- epoch: 100
- log_iter: 10
- find_unused_parameters: true
- use_gpu: true
- use_xpu: false
- use_mlu: false
- use_npu: false
- use_ema: true
- save_dir: output
- snapshot_epoch: 10
- print_flops: false
- print_params: false
- # Dataset
- metric: COCO
- num_classes: 23
- worker_num: 6
- eval_height: &eval_height 480
- eval_width: &eval_width 480
- eval_size: &eval_size [*eval_height, *eval_width]
- TrainDataset:
- name: COCODetDataset
- image_dir: images
- anno_path: annotations/instance_train.json
- dataset_dir: datasets/COCO
- data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd']
- EvalDataset:
- name: COCODetDataset
- image_dir: images
- anno_path: annotations/instance_val.json
- dataset_dir: datasets/COCO
- allow_empty: true
- TestDataset:
- name: ImageFolder
- anno_path: annotations/instance_val.json
- dataset_dir: datasets/COCO
- TrainReader:
- sample_transforms:
- - Decode: {}
- - RandomCrop: {}
- - RandomFlip: {prob: 0.5}
- - RandomDistort: {}
- batch_transforms:
- - BatchRandomResize: {target_size: [416, 448, 480, 512, 544], random_size: True, random_interp: True, keep_ratio: False}
- - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]}
- - Permute: {}
- - PadGT: {}
- batch_size: 16
- shuffle: true
- drop_last: true
- EvalReader:
- sample_transforms:
- - Decode: {}
- - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False}
- - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]}
- - Permute: {}
- batch_transforms:
- - PadBatch: {pad_to_stride: 32}
- batch_size: 8
- shuffle: false
- TestReader:
- inputs_def:
- image_shape: [3, *eval_height, *eval_width]
- sample_transforms:
- - Decode: {}
- - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False}
- - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]}
- - Permute: {}
- batch_size: 1
- # Model
- architecture: PicoDet
- pretrain_weights: https://paddle-model-ecology.bj.bcebos.com/paddlex/pretrained/PicoDet-S_layout_pretrained_17cls.pdparams
- PicoDet:
- backbone: LCNet
- neck: LCPAN
- head: PicoHeadV2
- LCNet:
- scale: 0.75
- feature_maps: [3, 4, 5]
- LCPAN:
- out_channels: 96
- use_depthwise: true
- num_features: 4
- PicoHeadV2:
- conv_feat:
- name: PicoFeat
- feat_in: 96
- feat_out: 96
- num_convs: 2
- num_fpn_stride: 4
- norm_type: bn
- share_cls_reg: true
- use_se: true
- fpn_stride: [8, 16, 32, 64]
- feat_in_chan: 96
- prior_prob: 0.01
- reg_max: 7
- cell_offset: 0.5
- grid_cell_scale: 5.0
- static_assigner_epoch: 100
- use_align_head: true
- static_assigner:
- name: ATSSAssigner
- topk: 9
- force_gt_matching: false
- assigner:
- name: TaskAlignedAssigner
- topk: 13
- alpha: 1.0
- beta: 6.0
- loss_class:
- name: VarifocalLoss
- use_sigmoid: false
- iou_weighted: true
- loss_weight: 1.0
- loss_dfl:
- name: DistributionFocalLoss
- loss_weight: 0.5
- loss_bbox:
- name: GIoULoss
- loss_weight: 2.5
- nms:
- name: MultiClassNMS
- nms_top_k: 1000
- keep_top_k: 100
- score_threshold: 0.025
- nms_threshold: 0.6
- # Optimizer
- LearningRate:
- base_lr: 0.08
- schedulers:
- - name: CosineDecay
- max_epochs: 300
- - name: LinearWarmup
- start_factor: 0.1
- steps: 100
- OptimizerBuilder:
- optimizer:
- momentum: 0.9
- type: Momentum
- regularizer:
- factor: 0.00004
- type: L2
- # Export
- export:
- post_process: true
- nms: true
- benchmark: false
- fuse_conv_bn: false
|