configs.yaml配置文件详细写了模型的数据处理,模型框架,训练方法等这些超参,训练调参都可以通过此修改,以./configs/Market1501目录下的AGW_R50-ibn.yml为例(下文的介绍中均以此为基础),其继承了Base-AGW.yml的配置,而Base-AGW.yml又继承了Base-bagtricks.yml:
代码如下(示例):
1_BASE_: "../Base-AGW.yml" # AGW_R50-ibn的上一级配置文件
2
3MODEL:
4 BACKBONE:
5 WITH_IBN: True 模型是否使用IBN module
6
7DATASETS:
8 NAMES: ("Market1501",) 数据集
9 TESTS: ("Market1501",)
10
11OUTPUT_DIR: "logs/market1501/agw_R50-ibn" # 日志输出目录
接下来看AGW_R50-ibn的上一级配置文件Base-AGW.yml(示例):
1_BASE_: "Base-bagtricks.yml" # Base-AGW的上一级配置文件
2
3MODEL:
4 BACKBONE:
5 WITH_NL: True # 模型是否使用No_local module
6
7 HEADS:
8 POOL_LAYER: "gempool" # HEADS POOL_LAYER
9
10 LOSSES:
11 NAME: ("CrossEntropyLoss", "TripletLoss") # 使用loss
12 CE:
13 EPSILON: 0.1 # CrossEntropyLoss 超参
14 SCALE: 1.0
15
16 TRI:
17 MARGIN: 0.0 # TripletLoss 超参
18 HARD_MINING: False
19 SCALE: 1.0
接下来看Base-AGW的上一级配置文件Base-bagtricks.yml(示例):
1MODEL:
2 META_ARCHITECTURE: "Baseline"
3
4 BACKBONE:
5 NAME: "build_resnet_backbone"
6 NORM: "BN" **# 模型NORM 如果是多卡需设置为syncBN 多卡同步BN**
7 DEPTH: "50x"
8 LAST_STRIDE: 1
9 FEAT_DIM: 2048 # 输出特征维度
10 WITH_IBN: True
11 PRETRAIN: True
12 PRETRAIN_PATH: "/media/zengwb/PC/baseline/ReID/resnet50_ibn_a-d9d0bb7b.pth"
13
14 HEADS:
15 NAME: "EmbeddingHead"
16 NORM: "BN" **# 模型NORM 如果是多卡需设置为syncBN 多卡同步BN**
17 WITH_BNNECK: True
18 POOL_LAYER: "avgpool"
19 NECK_FEAT: "before"
20 CLS_LAYER: "linear"
21
22 LOSSES:
23 NAME: ("CrossEntropyLoss", "TripletLoss",)
24
25 CE:
26 EPSILON: 0.1
27 SCALE: 1.
28
29 TRI:
30 MARGIN: 0.3
31 HARD_MINING: True
32 NORM_FEAT: False
33 SCALE: 1.
34
35INPUT:
36 SIZE_TRAIN: [256, 128]
37 SIZE_TEST: [256, 128]
38 REA:
39 ENABLED: True
40 PROB: 0.5
41 MEAN: [123.675, 116.28, 103.53]
42 DO_PAD: True
43
44DATALOADER:
45 PK_SAMPLER: True
46 NAIVE_WAY: True
47 NUM_INSTANCE: 4
48 NUM_WORKERS: 8
49
50SOLVER:
51 OPT: "Adam"
52 MAX_ITER: 120
53 BASE_LR: 0.00035
54 BIAS_LR_FACTOR: 2.
55 WEIGHT_DECAY: 0.0005
56 WEIGHT_DECAY_BIAS: 0.0005
57 IMS_PER_BATCH: 64 # 设置batch size
58
59 SCHED: "WarmupMultiStepLR"
60 STEPS: [40, 90]
61 GAMMA: 0.1
62
63 WARMUP_FACTOR: 0.01
64 WARMUP_ITERS: 10
65
66 CHECKPOINT_PERIOD: 60 # epoxh
67
68TEST:
69 EVAL_PERIOD: 30
70 IMS_PER_BATCH: 128
71
72CUDNN_BENCHMARK: True
可以看到整个配置文件为三个configs文件Base-bagtricks,Base-AGW,AGW_R50-ibn组成,一级一级细化,结合./fastreid/config/default.py 可以很容易理解整个项目的配置文件结构。
可以看到整个配置文件为三个configs文件Base-bagtricks,Base-AGW,AGW_R50-ibn组成,一级一级细化,结合./fastreid/config/default.py 可以很容易理解整个项目的配置文件结构。