forked from ClustProject/KUDataMultitasklearning
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.py
118 lines (116 loc) · 7.65 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
model_config = {
'LSTM' : { # Case 1. LSTM model (w/o data representation)
'model': 'LSTM',
'best_model_path': './ckpt/lstm.pt', # 학습 완료 모델 저장 경로
'parameter': {
'input_size': 9, # 데이터의 변수 개수, int
'num_classes': 6, # 분류할 class 개수, int
'num_layers': 2, # recurrent layers의 수, int(default: 2, 범위: 1 이상)
'hidden_size': 64, # hidden state의 차원, int(default: 64, 범위: 1 이상)
'dropout': 0.1, # dropout 확률, float(default: 0.1, 범위: 0 이상 1 이하)
'bidirectional': True, # 모델의 양방향성 여부, bool(default: True)
'num_epochs': 150, # 학습 epoch 횟수, int(default: 150, 범위: 1 이상)
'batch_size': 64, # batch 크기, int(default: 64, 범위: 1 이상, 컴퓨터 사양에 적합하게 설정)
'lr': 0.0001, # learning rate, float(default: 0.001, 범위: 0.1 이하)
'device': 'cuda' # 학습 환경, ["cuda", "cpu"] 중 선택
}
},
'GRU' : { # Case 2. GRU model (w/o data representation)
'model': 'GRU',
'best_model_path': './ckpt/gru.pt', # 학습 완료 모델 저장 경로
'parameter': {
'input_size': 9, # 데이터의 변수 개수, int
'num_classes': 6, # 분류할 class 개수, int
'num_layers': 2, # recurrent layers의 수, int(default: 2, 범위: 1 이상)
'hidden_size': 64, # hidden state의 차원, int(default: 64, 범위: 1 이상)
'dropout': 0.1, # dropout 확률, float(default: 0.1, 범위: 0 이상 1 이하)
'bidirectional': True, # 모델의 양방향성 여부, bool(default: True)
'num_epochs': 150, # 학습 epoch 횟수, int(default: 150, 범위: 1 이상)
'batch_size': 64, # batch 크기, int(default: 64, 범위: 1 이상, 컴퓨터 사양에 적합하게 설정)
'lr': 0.0001, # learning rate, float(default: 0.001, 범위: 0.1 이하)
'device': 'cuda' # 학습 환경, ["cuda", "cpu"] 중 선택
}
},
'CNN_1D' : { # Case 3. CNN_1D model (w/o data representation)
'model': 'CNN_1D',
'best_model_path': './ckpt/cnn_1d.pt', # 학습 완료 모델 저장 경로
'parameter': {
'input_size': 9, # 데이터의 변수 개수, int
'num_classes': 6, # 분류할 class 개수, int
'seq_len': 128, # 데이터의 시간 길이, int
'output_channels': 64, # convolution layer의 output channel, int(default: 64, 범위: 1 이상, 2의 지수로 설정 권장)
'kernel_size': 3, # convolutional layer의 filter 크기, int(default: 3, 범위: 3 이상, 홀수로 설정 권장)
'stride': 1, # convolution layer의 stride 크기, int(default: 1, 범위: 1 이상)
'padding': 0, # padding 크기, int(default: 0, 범위: 0 이상)
'drop_out': 0.1, # dropout 확률, float(default: 0.1, 범위: 0 이상 1 이하)
'num_epochs': 150, # 학습 epoch 횟수, int(default: 150, 범위: 1 이상)
'batch_size': 64, # batch 크기, int(default: 64, 범위: 1 이상, 컴퓨터 사양에 적합하게 설정)
'lr': 0.0001, # learning rate, float(default: 0.0001, 범위: 0.1 이하)
'device': 'cuda' # 학습 환경, ["cuda", "cpu"] 중 선택
}
},
'LSTM_FCNs_reg' : { # Case 4. LSTM_FCNs model (w/o data representation)
'model': 'LSTM_FCNs_reg',
'best_model_path': './ckpt/LSTM_FCNs_reg.pt', # 학습 완료 모델 저장 경로
'parameter': {
'input_size': 9, # 데이터의 변수 개수, int
'num_classes': 1, # 분류할 class 개수, int
'num_layers': 1, # recurrent layers의 수, int(default: 1, 범위: 1 이상)
'lstm_drop_out': 0.1, # LSTM dropout 확률, float(default: 0.4, 범위: 0 이상 1 이하)
'fc_drop_out': 0.1, # FC dropout 확률, float(default: 0.1, 범위: 0 이상 1 이하)
'num_epochs': 500, # 학습 epoch 횟수, int(default: 150, 범위: 1 이상)
'batch_size': 64, # batch 크기, int(default: 64, 범위: 1 이상, 컴퓨터 사양에 적합하게 설정)
'lr': 0.0001, # learning rate, float(default: 0.0001, 범위: 0.1 이하)
'device': 'cuda', # 학습 환경, ["cuda", "cpu"] 중 선택
'freeze' : False
}
},
'LSTM_FCNs_cls' : { # Case 4. LSTM_FCNs model (w/o data representation)
'model': 'LSTM_FCNs_cls',
'best_model_path': './ckpt/LSTM_FCNs_cls.pt', # 학습 완료 모델 저장 경로
'parameter': {
'input_size': 9, # 데이터의 변수 개수, int
'num_classes': 4, # 분류할 class 개수, int
'num_layers': 1, # recurrent layers의 수, int(default: 1, 범위: 1 이상)
'lstm_drop_out': 0.1, # LSTM dropout 확률, float(default: 0.4, 범위: 0 이상 1 이하)
'fc_drop_out': 0.1, # FC dropout 확률, float(default: 0.1, 범위: 0 이상 1 이하)
'num_epochs': 500, # 학습 epoch 횟수, int(default: 150, 범위: 1 이상)
'batch_size': 64, # batch 크기, int(default: 64, 범위: 1 이상, 컴퓨터 사양에 적합하게 설정)
'lr': 0.0001, # learning rate, float(default: 0.0001, 범위: 0.1 이하)
'device': 'cuda', # 학습 환경, ["cuda", "cpu"] 중 선택
'freeze' : False
}
},
'LSTM_FCNs_multi' : { # Case 4. LSTM_FCNs model (w/o data representation)
'model': 'LSTM_FCNs_multi',
'best_model_path': './ckpt/LSTM_FCNs_multi.pt', # 학습 완료 모델 저장 경로
'parameter': {
'input_size': 9, # 데이터의 변수 개수, int
'num_classes_1': 4, # 분류할 class 개수, int
'num_classes_2': 1, # 분류할 class 개수, int
'num_layers': 1, # recurrent layers의 수, int(default: 1, 범위: 1 이상)
'lstm_drop_out': 0.1, # LSTM dropout 확률, float(default: 0.4, 범위: 0 이상 1 이하)
'fc_drop_out': 0.1, # FC dropout 확률, float(default: 0.1, 범위: 0 이상 1 이하)
'num_epochs': 500, # 학습 epoch 횟수, int(default: 150, 범위: 1 이상)
'batch_size': 64, # batch 크기, int(default: 64, 범위: 1 이상, 컴퓨터 사양에 적합하게 설정)
'lr': 0.0001, # learning rate, float(default: 0.0001, 범위: 0.1 이하)
'device': 'cuda', # 학습 환경, ["cuda", "cpu"] 중 선택
'freeze' : False,
'alpha' : 0.5, # cls vs reg loss ratio, float(default: 0.5, 범위: 0 이상 1 이하)
}
},
'FC' : { # Case 5. fully-connected layers (w/ data representation)
'model': 'FC',
"best_model_path": './ckpt/fc.pt', # 학습 완료 모델 저장 경로
'parameter': {
'input_size': 64, # 데이터의 변수 개수(representation 차원), int
'num_classes': 6, # 분류할 class 개수, int
'drop_out': 0.1, # dropout 확률, float(default: 0.1, 범위: 0 이상 1 이하)
'bias': True, # bias 사용 여부, bool(default: True)
'num_epochs': 150, # 학습 epoch 횟수, int(default: 150, 범위: 1 이상)
'batch_size': 64, # batch 크기, int(default: 64, 범위: 1 이상, 컴퓨터 사양에 적합하게 설정)
'lr': 0.0001, # learning rate, float(default: 0.0001, 범위: 0.1 이하)
'device': 'cuda' # 학습 환경, ["cuda", "cpu"] 중 선택
}
}
}