Skip to content

Commit 93e2886

Browse files
committed
updated configs
fixed gradient checkpoint added TODO updated README.md
1 parent 7865494 commit 93e2886

18 files changed

+266
-59
lines changed

recognition/arcface_torch/README.md

+53-37
Original file line numberDiff line numberDiff line change
@@ -61,47 +61,63 @@ For **ICCV2021-MFR-ALL** set, TAR is measured on all-to-all 1:1 protocal, with F
6161
globalised multi-racial testset contains 242,143 identities and 1,624,305 images.
6262

6363

64-
> 1. Large Scale Datasets
65-
66-
| Datasets | Backbone | **MFR-ALL** | IJB-C(1E-4) | IJB-C(1E-5) | Training Throughout | log |
67-
|:-----------------|:------------|:------------|:------------|:------------|:--------------------|:------------------------------------------------------------------------------------------------------------------------------------------------|
68-
| MS1MV3 | mobileface | 65.76 | 94.44 | 91.85 | ~13000 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/ms1mv3_mobileface_lr02/training.log) |
69-
| Glint360K | mobileface | 69.83 | 95.17 | 92.58 | -11000 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/glint360k_mobileface_lr02_bs4k/training.log) |
70-
| WF42M-PFC-0.2 | mobileface | 73.80 | 95.40 | 92.64 | (16GPUs)~18583 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/webface42m_mobilefacenet_pfc02_bs8k_16gpus/training.log) |
71-
| MS1MV3 | r100 | 83.23 | 96.88 | 95.31 | ~3400 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/ms1mv3_r100_lr02/training.log) |
72-
| Glint360K | r100 | 90.86 | 97.53 | 96.43 | ~5000 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/glint360k_r100_lr02_bs4k_16gpus/training.log) |
73-
| WF42M-PFC-0.2 | r50(bs4k) | 93.83 | 97.53 | 96.16 | (8 GPUs)~5900 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/webface42m_r50_bs4k_pfc02/training.log) |
74-
| WF42M-PFC-0.2 | r50(bs8k) | 93.96 | 97.46 | 96.12 | (16GPUs)~11000 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/webface42m_r50_lr01_pfc02_bs8k_16gpus/training.log) |
75-
| WF42M-PFC-0.2 | r50(bs4k) | 94.04 | 97.48 | 95.94 | (32GPUs)~17000 | click me |
76-
| WF42M-PFC-0.0018 | r100(bs16k) | 93.08 | 97.51 | 95.88 | (32GPUs)~10000 | click me |
77-
| WF42M-PFC-0.2 | r100(bs4k) | 96.69 | 97.85 | 96.63 | (16GPUs)~5200 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/webface42m_r100_bs4k_pfc02/training.log) |
78-
79-
> 2. VIT For Face Recognition
80-
81-
| Datasets | Backbone | FLOPs | **MFR-ALL** | IJB-C(1E-4) | IJB-C(1E-5) | Training Throughout | log |
82-
|:--------------|:-------------|:------|:------------|:------------|:------------|:--------------------|:---------|
83-
| WF42M-PFC-0.3 | R18(bs4k) | 2.6 | 79.13 | 95.77 | 93.36 | - | click me |
84-
| WF42M-PFC-0.3 | R50(bs4k) | 6.3 | 94.03 | 97.48 | 95.94 | - | click me |
85-
| WF42M-PFC-0.3 | R100(bs4k) | 12.1 | 96.69 | 97.82 | 96.45 | - | click me |
86-
| WF42M-PFC-0.3 | R200(bs4k) | 23.5 | 97.70 | 97.97 | 96.93 | - | click me |
87-
| WF42M-PFC-0.3 | VIT-T(bs24k) | 1.5 | 92.24 | 97.31 | 95.97 | (64GPUs)~35000 | click me |
88-
| WF42M-PFC-0.3 | VIT-S(bs24k) | 5.7 | 95.87 | 97.73 | 96.57 | (64GPUs)~25000 | click me |
89-
| WF42M-PFC-0.3 | VIT-B(bs24k) | 11.4 | 97.42 | 97.90 | 97.04 | (64GPUs)~13800 | click me |
90-
| WF42M-PFC-0.3 | VIT-L(bs24k) | 25.3 | 97.85 | 98.00 | 97.23 | (64GPUs)~9406 | click me |
91-
92-
WF42M means WebFace42M, `PFC-0.3` means negivate class centers sample rate is 0.3.
93-
94-
> 3. Noisy Datasets
64+
#### 1. Training on Single-Host GPU
65+
66+
| Datasets | Backbone | **MFR-ALL** | IJB-C(1E-4) | IJB-C(1E-5) | log |
67+
|:--------------|:--------------------|:------------|:------------|:------------|:---------|
68+
| MS1MV2 | mobilefacenet-0.45G | 62.07 | 93.61 | 90.28 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/ms1mv2_mbf/training.log) |
69+
| MS1MV2 | r50 | 70.35 | 95.43 | 93.34 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/ms1mv2_r50/training.log) |
70+
| MS1MV2 | r100 | 69.79 | 95.85 | 93.93 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/ms1mv2_r100/training.log) |
71+
| MS1MV3 | mobilefacenet-0.45G | 63.78 | 94.23 | 91.33 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/ms1mv3_mbf/training.log) |
72+
| MS1MV3 | r50 | 79.14 | 96.37 | 94.47 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/ms1mv3_r50/training.log) |
73+
| MS1MV3 | r100 | 81.97 | 96.85 | 95.02 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/ms1mv3_r100/training.log) |
74+
| Glint360K | mobilefacenet-0.45G | 70.18 | 95.04 | 92.62 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/glint360k_mbf/training.log) |
75+
| Glint360K | r50 | 86.34 | 97.16 | 95.81 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/glint360k_r50/training.log) |
76+
| Glint360k | r100 | 89.52 | 97.55 | 96.38 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/glint360k_r100/training.log) |
77+
| WF42M-PFC-0.2 | ViT-T-1.5G | 92.04 | 97.27 | 95.68 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/wf42m_pfc02_40epoch_8gpu_vit_t/training.log) |
78+
| WF42M-PFC-0.2 | R100 | 96.27 | 97.70 | 96.31 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/wf42m_pfc02_r100/training.log) |
79+
80+
#### 2. Training on Multi-Host GPU
81+
82+
| Datasets | Backbone(bs*gpus) | **MFR-ALL** | IJB-C(1E-4) | IJB-C(1E-5) | Throughout | log |
83+
|:-----------------|:------------------|:------------|:------------|:------------|:-----------|:-------------------------------------------------------------------------------------------------------------------------------------------|
84+
| WF42M-PFC-0.2 | r50(512*8) | 93.83 | 97.53 | 96.16 | ~5900 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/webface42m_r50_bs4k_pfc02/training.log) |
85+
| WF42M-PFC-0.2 | r50(512*16) | 93.96 | 97.46 | 96.12 | ~11000 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/webface42m_r50_lr01_pfc02_bs8k_16gpus/training.log) |
86+
| WF42M-PFC-0.2 | r50(128*32) | 94.04 | 97.48 | 95.94 | ~17000 | click me |
87+
| WF42M-PFC-0.2 | r100(128*16) | 96.28 | 97.80 | 96.57 | ~5200 | click me |
88+
| WF42M-PFC-0.2 | r100(256*16) | 96.69 | 97.85 | 96.63 | ~5200 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/webface42m_r100_bs4k_pfc02/training.log) |
89+
| WF42M-PFC-0.0018 | r100(512*32) | 93.08 | 97.51 | 95.88 | ~10000 | click me |
90+
| WF42M-PFC-0.2 | r100(128*32) | 96.57 | 97.83 | 96.50 | ~9800 | click me |
91+
92+
`r100(128*32)` means backbone is r100, batchsize per gpu is 128, the number of gpus is 32.
93+
94+
95+
96+
#### 3. ViT For Face Recognition
97+
98+
| Datasets | Backbone(bs) | FLOPs | **MFR-ALL** | IJB-C(1E-4) | IJB-C(1E-5) | Throughout | log |
99+
|:--------------|:--------------|:------|:------------|:------------|:------------|:-----------|:-----------------------------------------------------------------------------------------------------------------------------|
100+
| WF42M-PFC-0.3 | r18(128*32) | 2.6 | 79.13 | 95.77 | 93.36 | - | click me |
101+
| WF42M-PFC-0.3 | r50(128*32) | 6.3 | 94.03 | 97.48 | 95.94 | - | click me |
102+
| WF42M-PFC-0.3 | r100(128*32) | 12.1 | 96.69 | 97.82 | 96.45 | - | click me |
103+
| WF42M-PFC-0.3 | r200(128*32) | 23.5 | 97.70 | 97.97 | 96.93 | - | click me |
104+
| WF42M-PFC-0.3 | VIT-T(384*64) | 1.5 | 92.24 | 97.31 | 95.97 | ~35000 | click me |
105+
| WF42M-PFC-0.3 | VIT-S(384*64) | 5.7 | 95.87 | 97.73 | 96.57 | ~25000 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/pfc03_wf42m_vit_s_64gpu/training.log) |
106+
| WF42M-PFC-0.3 | VIT-B(384*64) | 11.4 | 97.42 | 97.90 | 97.04 | ~13800 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/pfc03_wf42m_vit_b_64gpu/training.log) |
107+
| WF42M-PFC-0.3 | VIT-L(384*64) | 25.3 | 97.85 | 98.00 | 97.23 | ~9406 | [click me](https://raw.githubusercontent.com/anxiangsir/insightface_arcface_log/master/pfc03_wf42m_vit_l_64gpu/training.log) |
108+
109+
`WF42M` means WebFace42M, `PFC-0.3` means negivate class centers sample rate is 0.3.
110+
111+
#### 4. Noisy Datasets
95112

96113
| Datasets | Backbone | **MFR-ALL** | IJB-C(1E-4) | IJB-C(1E-5) | log |
97114
|:-------------------------|:---------|:------------|:------------|:------------|:---------|
98-
| WF12M-Flip(40%) | R50 | 43.87 | 88.35 | 80.78 | click me |
99-
| WF12M-Flip(40%)-PFC-0.3* | R50 | 80.20 | 96.11 | 93.79 | click me |
100-
| WF12M-Conflict | R50 | 79.93 | 95.30 | 91.56 | click me |
101-
| WF12M-Conflict-PFC-0.3* | R50 | 91.68 | 97.28 | 95.75 | click me |
102-
103-
WF12M means WebFace12M, `+PFC-0.3*` denotes additional abnormal inter-class filtering.
115+
| WF12M-Flip(40%) | r50 | 43.87 | 88.35 | 80.78 | click me |
116+
| WF12M-Flip(40%)-PFC-0.1* | r50 | 80.20 | 96.11 | 93.79 | click me |
117+
| WF12M-Conflict | r50 | 79.93 | 95.30 | 91.56 | click me |
118+
| WF12M-Conflict-PFC-0.3* | r50 | 91.68 | 97.28 | 95.75 | click me |
104119

120+
`WF12M` means WebFace12M, `+PFC-0.1*` denotes additional abnormal inter-class filtering.
105121

106122

107123

recognition/arcface_torch/backbones/iresnet.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def __init__(self, inplanes, planes, stride=1, downsample=None,
4444
self.downsample = downsample
4545
self.stride = stride
4646

47-
def forard_impl(self, x):
47+
def forward_impl(self, x):
4848
identity = x
4949
out = self.bn1(x)
5050
out = self.conv1(out)
@@ -59,9 +59,9 @@ def forard_impl(self, x):
5959

6060
def forward(self, x):
6161
if self.training and using_ckpt:
62-
return checkpoint(self.forard_imlp, x)
62+
return checkpoint(self.forward_impl, x)
6363
else:
64-
return self.forard_impl(x)
64+
return self.forward_impl(x)
6565

6666

6767
class IResNet(nn.Module):

recognition/arcface_torch/configs/base.py

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
config = edict()
88

9+
# Margin Base Softmax
910
config.margin_list = (1.0, 0.5, 0.0)
1011
config.network = "r50"
1112
config.resume = False

recognition/arcface_torch/configs/glint360k_mobileface_bs4k.py recognition/arcface_torch/configs/glint360k_mbf.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414
config.fp16 = True
1515
config.momentum = 0.9
1616
config.weight_decay = 1e-4
17-
config.batch_size = 512
18-
config.lr = 0.4
19-
config.verbose = 5000
17+
config.batch_size = 128
18+
config.lr = 0.1
19+
config.verbose = 2000
2020
config.dali = False
2121

2222
config.rec = "/train_tmp/glint360k"
2323
config.num_classes = 360232
2424
config.num_image = 17091657
2525
config.num_epoch = 20
26-
config.warmup_epoch = 2
26+
config.warmup_epoch = 0
2727
config.val_targets = ['lfw', 'cfp_fp', "agedb_30"]

recognition/arcface_torch/configs/glint360k_r100_bs4k_16gpus.py recognition/arcface_torch/configs/glint360k_r100.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@
1313
config.sample_rate = 1.0
1414
config.fp16 = True
1515
config.momentum = 0.9
16-
config.weight_decay = 5e-4
17-
config.batch_size = 256
18-
config.lr = 0.4
19-
config.verbose = 5000
16+
config.weight_decay = 1e-4
17+
config.batch_size = 128
18+
config.lr = 0.1
19+
config.verbose = 2000
2020
config.dali = False
2121

2222
config.rec = "/train_tmp/glint360k"
2323
config.num_classes = 360232
2424
config.num_image = 17091657
2525
config.num_epoch = 20
26-
config.warmup_epoch = 2
26+
config.warmup_epoch = 0
2727
config.val_targets = ['lfw', 'cfp_fp', "agedb_30"]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from easydict import EasyDict as edict
2+
3+
# make training faster
4+
# our RAM is 256G
5+
# mount -t tmpfs -o size=140G tmpfs /train_tmp
6+
7+
config = edict()
8+
config.margin_list = (1.0, 0.0, 0.4)
9+
config.network = "r50"
10+
config.resume = False
11+
config.output = None
12+
config.embedding_size = 512
13+
config.sample_rate = 1.0
14+
config.fp16 = True
15+
config.momentum = 0.9
16+
config.weight_decay = 1e-4
17+
config.batch_size = 128
18+
config.lr = 0.1
19+
config.verbose = 2000
20+
config.dali = False
21+
22+
config.rec = "/train_tmp/glint360k"
23+
config.num_classes = 360232
24+
config.num_image = 17091657
25+
config.num_epoch = 20
26+
config.warmup_epoch = 0
27+
config.val_targets = ['lfw', 'cfp_fp', "agedb_30"]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from easydict import EasyDict as edict
2+
3+
# make training faster
4+
# our RAM is 256G
5+
# mount -t tmpfs -o size=140G tmpfs /train_tmp
6+
7+
config = edict()
8+
config.margin_list = (1.0, 0.5, 0.0)
9+
config.network = "mbf"
10+
config.resume = False
11+
config.output = None
12+
config.embedding_size = 512
13+
config.sample_rate = 1.0
14+
config.fp16 = True
15+
config.momentum = 0.9
16+
config.weight_decay = 1e-4
17+
config.batch_size = 128
18+
config.lr = 0.1
19+
config.verbose = 2000
20+
config.dali = False
21+
22+
config.rec = "/train_tmp/faces_emore"
23+
config.num_classes = 85742
24+
config.num_image = 5822653
25+
config.num_epoch = 40
26+
config.warmup_epoch = 0
27+
config.val_targets = ['lfw', 'cfp_fp', "agedb_30"]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from easydict import EasyDict as edict
2+
3+
# make training faster
4+
# our RAM is 256G
5+
# mount -t tmpfs -o size=140G tmpfs /train_tmp
6+
7+
config = edict()
8+
config.margin_list = (1.0, 0.5, 0.0)
9+
config.network = "r100"
10+
config.resume = False
11+
config.output = None
12+
config.embedding_size = 512
13+
config.sample_rate = 1.0
14+
config.fp16 = True
15+
config.momentum = 0.9
16+
config.weight_decay = 1e-4
17+
config.batch_size = 128
18+
config.lr = 0.1
19+
config.verbose = 2000
20+
config.dali = False
21+
22+
config.rec = "/train_tmp/faces_emore"
23+
config.num_classes = 85742
24+
config.num_image = 5822653
25+
config.num_epoch = 20
26+
config.warmup_epoch = 0
27+
config.val_targets = ['lfw', 'cfp_fp', "agedb_30"]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from easydict import EasyDict as edict
2+
3+
# make training faster
4+
# our RAM is 256G
5+
# mount -t tmpfs -o size=140G tmpfs /train_tmp
6+
7+
config = edict()
8+
config.margin_list = (1.0, 0.5, 0.0)
9+
config.network = "r50"
10+
config.resume = False
11+
config.output = None
12+
config.embedding_size = 512
13+
config.sample_rate = 1.0
14+
config.fp16 = True
15+
config.momentum = 0.9
16+
config.weight_decay = 1e-4
17+
config.batch_size = 128
18+
config.lr = 0.1
19+
config.verbose = 2000
20+
config.dali = False
21+
22+
config.rec = "/train_tmp/faces_emore"
23+
config.num_classes = 85742
24+
config.num_image = 5822653
25+
config.num_epoch = 20
26+
config.warmup_epoch = 0
27+
config.val_targets = ['lfw', 'cfp_fp', "agedb_30"]

recognition/arcface_torch/configs/ms1mv3_mobileface.py recognition/arcface_torch/configs/ms1mv3_mbf.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414
config.fp16 = True
1515
config.momentum = 0.9
1616
config.weight_decay = 1e-4
17-
config.batch_size = 256
18-
config.lr = 0.2
19-
config.verbose = 5000
17+
config.batch_size = 128
18+
config.lr = 0.1
19+
config.verbose = 2000
2020
config.dali = False
2121

2222
config.rec = "/train_tmp/ms1m-retinaface-t1"
2323
config.num_classes = 93431
2424
config.num_image = 5179510
2525
config.num_epoch = 40
26-
config.warmup_epoch = 2
26+
config.warmup_epoch = 0
2727
config.val_targets = ['lfw', 'cfp_fp', "agedb_30"]

recognition/arcface_torch/configs/ms1mv3_r100.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515
config.momentum = 0.9
1616
config.weight_decay = 5e-4
1717
config.batch_size = 128
18-
config.lr = 0.2
18+
config.lr = 0.1
1919
config.verbose = 2000
2020
config.dali = False
2121

2222
config.rec = "/train_tmp/ms1m-retinaface-t1"
2323
config.num_classes = 93431
2424
config.num_image = 5179510
25-
config.num_epoch = 25
25+
config.num_epoch = 20
2626
config.warmup_epoch = 0
2727
config.val_targets = ['lfw', 'cfp_fp', "agedb_30"]

recognition/arcface_torch/configs/ms1mv3_r50.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515
config.momentum = 0.9
1616
config.weight_decay = 5e-4
1717
config.batch_size = 128
18-
config.lr = 0.2
18+
config.lr = 0.1
1919
config.verbose = 2000
2020
config.dali = False
2121

2222
config.rec = "/train_tmp/ms1m-retinaface-t1"
2323
config.num_classes = 93431
2424
config.num_image = 5179510
25-
config.num_epoch = 25
26-
config.warmup_epoch = 2
25+
config.num_epoch = 20
26+
config.warmup_epoch = 0
2727
config.val_targets = ['lfw', 'cfp_fp', "agedb_30"]

recognition/arcface_torch/configs/wf12m_flip_pfc02_filter04_r50.py recognition/arcface_torch/configs/wf12m_flip_pfc01_filter04_r50.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
config.resume = False
1111
config.output = None
1212
config.embedding_size = 512
13-
config.sample_rate = 0.2
13+
config.sample_rate = 0.1
1414
config.interclass_filtering_threshold = 0.4
1515
config.fp16 = True
1616
config.weight_decay = 5e-4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from easydict import EasyDict as edict
2+
3+
# make training faster
4+
# our RAM is 256G
5+
# mount -t tmpfs -o size=140G tmpfs /train_tmp
6+
7+
config = edict()
8+
config.margin_list = (1.0, 0.0, 0.4)
9+
config.network = "r100"
10+
config.resume = False
11+
config.output = None
12+
config.embedding_size = 512
13+
config.sample_rate = 0.2
14+
config.fp16 = True
15+
config.momentum = 0.9
16+
config.weight_decay = 5e-4
17+
config.batch_size = 128
18+
config.lr = 0.1
19+
config.verbose = 10000
20+
config.dali = False
21+
22+
config.rec = "/train_tmp/WebFace42M"
23+
config.num_classes = 2059906
24+
config.num_image = 42474557
25+
config.num_epoch = 20
26+
config.warmup_epoch = 0
27+
config.val_targets = ['lfw', 'cfp_fp', "agedb_30"]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from easydict import EasyDict as edict
2+
3+
# make training faster
4+
# our RAM is 256G
5+
# mount -t tmpfs -o size=140G tmpfs /train_tmp
6+
7+
config = edict()
8+
config.margin_list = (1.0, 0.0, 0.4)
9+
config.network = "r100"
10+
config.resume = False
11+
config.output = None
12+
config.embedding_size = 512
13+
config.sample_rate = 0.2
14+
config.fp16 = True
15+
config.momentum = 0.9
16+
config.weight_decay = 5e-4
17+
config.batch_size = 128
18+
config.lr = 0.2
19+
config.verbose = 10000
20+
config.dali = False
21+
22+
config.rec = "/train_tmp/WebFace42M"
23+
config.num_classes = 2059906
24+
config.num_image = 42474557
25+
config.num_epoch = 20
26+
config.warmup_epoch = config.num_epoch // 10
27+
config.val_targets = ['lfw', 'cfp_fp', "agedb_30"]

0 commit comments

Comments
 (0)