| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- epoch: 80
- use_gpu: true
- use_xpu: false
- use_mlu: false
- use_npu: false
- log_iter: 20
- save_dir: output
- target_metrics: mask
- snapshot_epoch: 1
- print_flops: false
- print_params: false
- worker_num: 4
- eval_height: &eval_height 640
- eval_width: &eval_width 640
- eval_size: &eval_size [*eval_height, *eval_width]
- # Dataset
- metric: COCO
- num_classes: 80
- TrainDataset:
- name: COCODataSet
- image_dir: train2017
- anno_path: annotations/instances_train2017.json
- dataset_dir: dataset/coco
- data_fields: ['image', 'gt_bbox', 'gt_class', 'gt_poly', 'is_crowd']
- EvalDataset:
- name: COCODataSet
- image_dir: val2017
- anno_path: annotations/instances_val2017.json
- dataset_dir: dataset/coco
- TestDataset:
- name: ImageFolder
- anno_path: annotations/instances_val2017.json # also support txt (like VOC's label_list.txt)
- dataset_dir: dataset/coco # if set, anno_path will be 'dataset_dir/anno_path'
- TrainReader:
- sample_transforms:
- - Decode: {}
- - RandomDistort: {}
- - RandomExpand: {fill_value: [123.675, 116.28, 103.53]}
- - RandomCrop: {is_mask_crop: True}
- - RandomFlip: {}
- - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2}
- - Poly2Mask: {del_poly: True}
- batch_transforms:
- - NormalizeImage: {mean: [0., 0., 0.], std: [1., 1., 1.], norm_type: none}
- - Permute: {}
- - PadGT: {}
- batch_size: 8
- shuffle: true
- drop_last: true
- use_shared_memory: true
- collate_batch: False
- EvalReader:
- sample_transforms:
- - Decode: {}
- - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2}
- - NormalizeImage: {mean: [0., 0., 0.], std: [1., 1., 1.], norm_type: none}
- - Permute: {}
- batch_size: 1
- TestReader:
- inputs_def:
- image_shape: [3, *eval_height, *eval_width]
- sample_transforms:
- - Decode: {}
- - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2}
- - NormalizeImage: {mean: [0., 0., 0.], std: [1., 1., 1.], norm_type: none}
- - Permute: {}
- batch_size: 1
- LearningRate:
- base_lr: 0.001
- schedulers:
- - name: CosineDecay
- max_epochs: 96
- - name: LinearWarmup
- start_factor: 0.
- epochs: 5
- OptimizerBuilder:
- optimizer:
- momentum: 0.9
- type: Momentum
- regularizer:
- factor: 0.0005
- type: L2
- # Model
- architecture: PPYOLOE
- pretrain_weights: https://bj.bcebos.com/v1/paddledet/models/pretrained/ppyoloe_crn_s_obj365_pretrained.pdparams
- norm_type: sync_bn
- use_ema: true
- ema_decay: 0.9998
- ema_black_list: ['proj_conv.weight']
- custom_black_list: ['reduce_mean']
- depth_mult: 0.33
- width_mult: 0.50
- with_mask: True
- PPYOLOE:
- backbone: CSPResNet
- neck: CustomCSPPAN
- yolo_head: PPYOLOEInsHead
- post_process: ~
- with_mask: True
- CSPResNet:
- layers: [3, 6, 6, 3]
- channels: [64, 128, 256, 512, 1024]
- return_idx: [1, 2, 3]
- use_large_stem: True
- use_alpha: True
- CustomCSPPAN:
- out_channels: [768, 384, 192]
- stage_num: 1
- block_num: 3
- act: 'swish'
- spp: true
- PPYOLOEInsHead:
- fpn_strides: [32, 16, 8]
- grid_cell_scale: 5.0
- grid_cell_offset: 0.5
- static_assigner_epoch: -1 # only use TaskAlignedAssigner
- use_varifocal_loss: True
- loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5}
- assigner:
- name: TaskAlignedAssigner
- topk: 13
- alpha: 1.0
- beta: 6.0
- nms:
- name: MultiClassNMS
- nms_top_k: 1000
- keep_top_k: 300
- score_threshold: 0.01
- nms_threshold: 0.7
- return_index: True
- # Exporting the model
- export:
- post_process: True # Whether post-processing is included in the network when export model.
- nms: True # Whether NMS is included in the network when export model.
- benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported.
- fuse_conv_bn: False
|