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