|
|
@@ -0,0 +1,205 @@ |
|
|
|
# global configs |
|
|
|
Global: |
|
|
|
checkpoints: null |
|
|
|
pretrained_model: https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/pretrain/PPShiTuV2/general_PPLCNetV2_base_pretrained_v1.0.pdparams |
|
|
|
output_dir: /tmp/output/ |
|
|
|
device: gpu |
|
|
|
save_interval: 1 |
|
|
|
eval_during_train: True |
|
|
|
eval_interval: 1 |
|
|
|
epochs: 120 |
|
|
|
print_batch_step: 20 |
|
|
|
use_visualdl: True |
|
|
|
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: /tmp/output/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: 50030 |
|
|
|
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 |
|
|
|
- TripletAngularMarginLoss: |
|
|
|
weight: 1.0 |
|
|
|
feature_from: features |
|
|
|
margin: 0.5 |
|
|
|
reduction: mean |
|
|
|
add_absolute: True |
|
|
|
absolute_loss_weight: 0.1 |
|
|
|
normalize_feature: True |
|
|
|
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.06 # for 8gpu x 256bs |
|
|
|
warmup_epoch: 5 |
|
|
|
regularizer: |
|
|
|
name: L2 |
|
|
|
coeff: 0.00001 |
|
|
|
|
|
|
|
# data loader for train and eval |
|
|
|
DataLoader: |
|
|
|
Train: |
|
|
|
dataset: |
|
|
|
name: ImageNetDataset |
|
|
|
image_root: /tmp/dataset/ |
|
|
|
cls_label_path: /tmp/dataset/train_list.txt |
|
|
|
relabel: True |
|
|
|
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: |
|
|
|
padding: 10 |
|
|
|
backend: cv2 |
|
|
|
- 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: PKSampler |
|
|
|
batch_size: 256 |
|
|
|
sample_per_id: 4 |
|
|
|
drop_last: False |
|
|
|
shuffle: True |
|
|
|
sample_method: "id_avg_prob" |
|
|
|
id_list: [50030, 80700, 92019, 96015] # be careful when set relabel=True |
|
|
|
ratio: [4, 4] |
|
|
|
loader: |
|
|
|
num_workers: 4 |
|
|
|
use_shared_memory: True |
|
|
|
|
|
|
|
Eval: |
|
|
|
Query: |
|
|
|
dataset: |
|
|
|
name: VeriWild |
|
|
|
image_root: /tmp/dataset/ |
|
|
|
cls_label_path: /tmp/dataset/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: 128 |
|
|
|
drop_last: False |
|
|
|
shuffle: False |
|
|
|
loader: |
|
|
|
num_workers: 4 |
|
|
|
use_shared_memory: True |
|
|
|
|
|
|
|
Gallery: |
|
|
|
dataset: |
|
|
|
name: VeriWild |
|
|
|
image_root: /tmp/dataset/ |
|
|
|
cls_label_path: /tmp/dataset/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: 128 |
|
|
|
drop_last: False |
|
|
|
shuffle: False |
|
|
|
loader: |
|
|
|
num_workers: 4 |
|
|
|
use_shared_memory: True |
|
|
|
|
|
|
|
Metric: |
|
|
|
Eval: |
|
|
|
- Recallk: |
|
|
|
topk: [1, 5] |
|
|
|
- mAP: {} |