# global configs Global: checkpoints: null pretrained_model: null #"metabin_resnet50_final" output_dir: "./output/" device: "gpu" iter_per_epoch: 145 warmup_iter: 10 save_interval: 40 eval_during_train: True eval_interval: 10 epochs: &epochs 120 print_batch_step: 20 use_visualdl: False eval_mode: "retrieval" retrieval_feature_from: "features" # 'backbone' or 'features' re_ranking: False # used for static mode and model export image_shape: [3, 256, 128] save_inference_dir: "./inference" train_mode: 'metabin' AMP: scale_loss: 65536 use_dynamic_loss_scaling: True # model architecture Arch: name: "RecModel" Backbone: name: "ResNet50_metabin" pretrained: False # "metabin_resnet50_backbone_pretrained" bias_lr_factor: 2.0 gate_lr_factor: 20.0 BackboneStopLayer: name: "flatten" Neck: name: BNNeck num_features: &feat_dim 2048 Head: name: "FC" embedding_size: *feat_dim class_num: &class_num 751 weight_attr: initializer: name: KaimingUniform negative_slope: 2.23606 # math.sqrt(5) nonlinearity: "leaky_relu" bias_attr: False # data loader for train and eval DataLoader: Train: dataset: name: "Market1501" image_root: "./dataset/" cls_label_path: "bounding_box_train" backend: "pil" transform_ops: - ResizeImage: size: [128, 256] return_numpy: False interpolation: "bicubic" backend: "pil" - RandFlipImage: flip_code: 1 - Pad: padding: 10 - RandCropImageV2: size: [128, 256] - ColorJitter: brightness: 0.15 contrast: 0.15 saturation: 0.1 hue: 0.1 - ToTensor: - Normalize: mean: [0.485, 0.456, 0.406] std: [0.229, 0.224, 0.225] sampler: name: NaiveIdentityBatchSampler batch_size: 96 num_instances: 4 drop_last: True loader: num_workers: 4 use_shared_memory: True Metalearning: Train: dataset: name: "Market1501" image_root: "./dataset/" cls_label_path: "bounding_box_train" backend: "pil" transform_ops: - ResizeImage: size: [128, 256] return_numpy: False interpolation: "bicubic" backend: "pil" - RandFlipImage: flip_code: 1 - Pad: padding: 10 - RandCropImageV2: size: [128, 256] - ColorJitter: brightness: 0.15 contrast: 0.15 saturation: 0.1 hue: 0.1 - ToTensor: - Normalize: mean: [0.485, 0.456, 0.406] std: [0.229, 0.224, 0.225] sampler: name: DomainShuffleBatchSampler batch_size: 96 num_instances: 4 drop_last: True camera_to_domain: True loader: num_workers: 4 use_shared_memory: True Eval: Query: dataset: name: "DukeMTMC" image_root: "./dataset/" cls_label_path: "query" backend: "pil" transform_ops: - ResizeImage: size: [128, 256] return_numpy: False interpolation: "bicubic" backend: "pil" - ToTensor: - Normalize: mean: [0.485, 0.456, 0.406] std: [0.229, 0.224, 0.225] sampler: name: DistributedBatchSampler batch_size: 128 drop_last: False shuffle: False loader: num_workers: 4 use_shared_memory: True Gallery: dataset: name: "DukeMTMC" image_root: "./dataset/" cls_label_path: "bounding_box_test" backend: "pil" transform_ops: - ResizeImage: size: [128, 256] return_numpy: False interpolation: "bicubic" backend: "pil" - ToTensor: - Normalize: mean: [0.485, 0.456, 0.406] std: [0.229, 0.224, 0.225] sampler: name: DistributedBatchSampler batch_size: 128 drop_last: False shuffle: False loader: num_workers: 4 use_shared_memory: True # loss function config for traing/eval process Loss: Train: - CELossForMetaBIN: weight: 1.0 epsilon: 0.1 - TripletLossForMetaBIN: weight: 1.0 margin: 0.3 feature_from: "backbone" - IntraDomainScatterLoss: weight: 1.0 normalize_feature: True feature_from: "backbone" - InterDomainShuffleLoss: weight: 1.0 normalize_feature: False feature_from: "backbone" Basic: - CELossForMetaBIN: weight: 1.0 epsilon: 0.1 - TripletLossForMetaBIN: weight: 1.0 margin: 0.3 feature_from: "backbone" MetaTrain: - CELossForMetaBIN: weight: 1.0 epsilon: 0.1 - TripletLossForMetaBIN: weight: 1.0 margin: 0.3 feature_from: "backbone" - IntraDomainScatterLoss: weight: 1.0 normalize_feature: True feature_from: "backbone" - InterDomainShuffleLoss: weight: 1.0 normalize_feature: False feature_from: "backbone" MetaTest: - CELossForMetaBIN: weight: 1.0 epsilon: 0.1 - TripletLossForMetaBIN: weight: 1.0 margin: 0.3 feature_from: "backbone" Eval: - TripletLossForMetaBIN: weight: 1.0 margin: 0.3 feature_from: "backbone" Optimizer: - Momentum: scope: ".*(conv|batch_norm|instance_norm|feat_bn|fc)" lr: name: MultiStepDecay epochs: *epochs learning_rate: 0.01 step_each_epoch: 145 milestones: [50, 90] gamma: 0.1 warmup_epoch: 10 warmup_start_lr: 0.0001 by_epoch: False last_epoch: -1 momentum: 0.9 regularizer: name: "L2" coeff: 0.0005 - Momentum: scope: "backbone.*gate" lr: name: Constant learning_rate: 0.01 last_epoch: 0 momentum: 0.9 - SGD: scope: "RecModel" lr: name: Cyclic epochs: *epochs step_each_epoch: 145 base_learning_rate: 0.001 max_learning_rate: 0.1 warmup_epoch: 0 warmup_start_lr: 1 step_size_up: 1095 step_size_down: 1095 by_epoch: False last_epoch: 0 Metric: Eval: - Recallk: topk: [1, 5, 10] - mAP: {}