GeneralRecognitionV2_PPLCNetV2_base.yaml 4.5 KB
Newer Older
H
HydrogenSulfate 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
# global configs
Global:
  checkpoints: null
  pretrained_model: null
  output_dir: ./output
  device: gpu
  save_interval: 1
  eval_during_train: True
  eval_interval: 1
  epochs: 100
  print_batch_step: 20
  use_visualdl: False
  eval_mode: retrieval
  retrieval_feature_from: features # 'backbone' or 'features'
  re_ranking: False
  use_dali: False
  # used for static mode and model export
  image_shape: [3, 224, 224]
  save_inference_dir: ./inference

# AMP:
#   scale_loss: 65536
#   use_dynamic_loss_scaling: True
#   # O1: mixed fp16
#   level: O1

# model architecture
Arch:
  name: RecModel
  infer_output_key: features
  infer_add_softmax: False

  Backbone:
    name: PPLCNetV2_base_ShiTu
    pretrained: True
    use_ssld: True
    class_expand: &feat_dim 512
  BackboneStopLayer:
    name: flatten
  Neck:
    name: BNNeck
    num_features: *feat_dim
    weight_attr:
      initializer:
        name: Constant
        value: 1.0
    bias_attr:
      initializer:
        name: Constant
        value: 0.0
      learning_rate: 1.0e-20 # NOTE: Temporarily set lr small enough to freeze the bias to zero
  Head:
    name: FC
    embedding_size: *feat_dim
    class_num: 192612
    weight_attr:
      initializer:
        name: Normal
        std: 0.001
    bias_attr: False

# loss function config for traing/eval process
Loss:
  Train:
    - CELoss:
        weight: 1.0
        epsilon: 0.1
    - TripletAngleMarinLoss:
        weight: 1.0
        margin: 0.5
        reduction: mean
        add_absolute: True
        absolute_loss_weight: 0.1
        normalize_feature: True
        feature_from: features
        ap_value: 0.8
        an_value: 0.4
  Eval:
    - CELoss:
        weight: 1.0

Optimizer:
  name: Momentum
  momentum: 0.9
  lr:
    name: Cosine
    learning_rate: 0.04
    warmup_epoch: 5
  regularizer:
    name: L2
    coeff: 0.00001

# data loader for train and eval
DataLoader:
  Train:
    dataset:
      name: ImageNetDataset
      image_root: ./dataset/
      cls_label_path: ./dataset/train_reg_all_data.txt
      transform_ops:
        - DecodeImage:
            to_rgb: True
            channel_first: False
        - ResizeImage:
            size: [224, 224]
            return_numpy: False
            interpolation: bilinear
            backend: cv2
        - RandFlipImage:
            flip_code: 1
        - Pad_cv2:
            padding: 10
        - RandCropImageV2:
            size: [224, 224]
        - RandomRotation:
            prob: 0.5
            degrees: 90
            interpolation: bilinear
        - ResizeImage:
            size: [224, 224]
            return_numpy: False
            interpolation: bilinear
            backend: cv2
        - NormalizeImage:
            scale: 1.0/255.0
            mean: [0.485, 0.456, 0.406]
            std: [0.229, 0.224, 0.225]
            order: hwc
    sampler:
      name: DistributedBatchSampler
      batch_size: 256
      drop_last: False
      shuffle: True
    loader:
      num_workers: 4
      use_shared_memory: True

  Eval:
    Query:
      dataset:
        name: VeriWild
        image_root: ./dataset/Aliproduct/
        cls_label_path: ./dataset/Aliproduct/val_list.txt
        transform_ops:
          - DecodeImage:
              to_rgb: True
              channel_first: False
          - ResizeImage:
              size: [224, 224]
              return_numpy: False
              interpolation: bilinear
              backend: cv2
          - NormalizeImage:
              scale: 1.0/255.0
              mean: [0.485, 0.456, 0.406]
              std: [0.229, 0.224, 0.225]
              order: hwc
      sampler:
        name: DistributedBatchSampler
        batch_size: 64
        drop_last: False
        shuffle: False
      loader:
        num_workers: 4
        use_shared_memory: True

    Gallery:
      dataset:
        name: VeriWild
        image_root: ./dataset/Aliproduct/
        cls_label_path: ./dataset/Aliproduct/val_list.txt
        transform_ops:
          - DecodeImage:
              to_rgb: True
              channel_first: False
          - ResizeImage:
              size: [224, 224]
              return_numpy: False
              interpolation: bilinear
              backend: cv2
          - NormalizeImage:
              scale: 1.0/255.0
              mean: [0.485, 0.456, 0.406]
              std: [0.229, 0.224, 0.225]
              order: hwc
      sampler:
        name: DistributedBatchSampler
        batch_size: 64
        drop_last: False
        shuffle: False
      loader:
        num_workers: 4
        use_shared_memory: True

Metric:
  Eval:
    - Recallk:
        topk: [1, 5]