配置文件解读

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 可以很容易理解整个项目的配置文件结构。