architecture: YOLOv3 use_gpu: true max_iters: 20000 log_smooth_window: 20 save_dir: output snapshot_iter: 200 metric: VOC map_type: 11point pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar weights: output/yolov3_mobilenet_v1_fruit/best_model num_classes: 3 finetune_exclude_pretrained_params: ['yolo_output'] use_fine_grained_loss: false YOLOv3: backbone: MobileNet yolo_head: YOLOv3Head MobileNet: norm_type: sync_bn norm_decay: 0. conv_group_scale: 1 with_extra_blocks: false YOLOv3Head: anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] anchors: [[10, 13], [16, 30], [33, 23], [30, 61], [62, 45], [59, 119], [116, 90], [156, 198], [373, 326]] norm_decay: 0. yolo_loss: YOLOv3Loss nms: background_label: -1 keep_top_k: 100 nms_threshold: 0.45 nms_top_k: 1000 normalized: false score_threshold: 0.01 YOLOv3Loss: # batch_size here is only used for fine grained loss, not used # for training batch_size setting, training batch_size setting # is in configs/yolov3_reader.yml TrainReader.batch_size, batch # size here should be set as same value as TrainReader.batch_size batch_size: 8 ignore_thresh: 0.7 label_smooth: true LearningRate: base_lr: 0.00001 schedulers: - !PiecewiseDecay gamma: 0.1 milestones: - 15000 - 18000 - !LinearWarmup start_factor: 0. steps: 100 OptimizerBuilder: optimizer: momentum: 0.9 type: Momentum regularizer: factor: 0.0005 type: L2 _READER_: 'yolov3_reader.yml' # will merge TrainReader into yolov3_reader.yml TrainReader: inputs_def: image_shape: [3, 608, 608] fields: ['image', 'gt_bbox', 'gt_class', 'gt_score'] num_max_boxes: 50 dataset: !VOCDataSet dataset_dir: dataset/fruit anno_path: train.txt with_background: false use_default_label: false sample_transforms: - !DecodeImage to_rgb: true with_mixup: false - !NormalizeBox {} - !ExpandImage max_ratio: 4.0 mean: [123.675, 116.28, 103.53] prob: 0.5 - !RandomInterpImage max_size: 0 target_size: 608 - !RandomFlipImage is_normalized: true prob: 0.5 - !NormalizeImage mean: [0.485, 0.456, 0.406] std: [0.229, 0.224, 0.225] is_scale: true is_channel_first: false - !PadBox num_max_boxes: 50 - !BboxXYXY2XYWH {} batch_transforms: - !RandomShape sizes: [608] - !Permute channel_first: true to_bgr: false batch_size: 1 shuffle: true mixup_epoch: -1 EvalReader: batch_size: 1 inputs_def: image_shape: [3, 608, 608] fields: ['image', 'im_size', 'im_id', 'gt_bbox', 'gt_class', 'is_difficult'] num_max_boxes: 50 dataset: !VOCDataSet dataset_dir: dataset/fruit anno_path: val.txt use_default_label: false with_background: false TestReader: batch_size: 1 dataset: !ImageFolder anno_path: dataset/fruit/label_list.txt use_default_label: false with_background: false