# 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]