-
Notifications
You must be signed in to change notification settings - Fork 30
/
config.py
52 lines (51 loc) · 2 KB
/
config.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from easydict import EasyDict as edict
from pathlib import Path
import torch
from torch.nn import CrossEntropyLoss
from torchvision import transforms as trans
def get_config(training = True):
conf = edict()
conf.data_path = Path('data')
conf.work_path = Path('work_space/')
conf.model_path = conf.work_path/'models'
conf.log_path = conf.work_path/'log'
conf.save_path = conf.work_path/'save'
conf.input_size = [112,112]
conf.embedding_size = 512
conf.use_mobilfacenet = False
conf.facebank_path = conf.data_path/'facebank'
conf.net_depth = 50
conf.drop_ratio = 0.6
conf.net_mode = 'ir_se' # or 'ir'
conf.device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
conf.test_transform = trans.Compose([
trans.ToTensor(),
trans.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
])
conf.data_mode = 'emore'
conf.vgg_folder = conf.data_path/'faces_vgg_112x112'
conf.ms1m_folder = conf.data_path/'faces_ms1m_112x112'
conf.emore_folder = conf.data_path/'faces_emore'
conf.batch_size = 100 # irse net depth 50
# conf.batch_size = 200 # mobilefacenet
#--------------------Training Config ------------------------
if training:
conf.log_path = conf.work_path/'log'
conf.save_path = conf.work_path/'save'
# conf.weight_decay = 5e-4
conf.lr = 1e-3
conf.milestones = [12,15,18]
conf.momentum = 0.9
conf.pin_memory = True
# conf.num_workers = 4 # when batchsize is 200
conf.num_workers = 3
conf.ce_loss = CrossEntropyLoss()
#--------------------Inference Config ------------------------
else:
conf.facebank_path = conf.data_path/'facebank'
conf.threshold = 1.5
conf.face_limit = 10
#when inference, at maximum detect 10 faces in one image,
conf.min_face_size = 35
# the larger this value, the faster deduction, comes with tradeoff in small faces
return conf