-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathtrain.py
103 lines (98 loc) · 2.61 KB
/
train.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
import argparse
from irradiance_rnn.train import train
def main():
parser = argparse.ArgumentParser(description='Train a configurable RNN')
parser.add_argument(
'--lat', type=float, required=True, help='Latitude [Required]'
)
parser.add_argument(
'--lon', type=float, required=True, help='Longitude [Required]'
)
parser.add_argument(
'--train-years',
type=str,
required=True,
help=
'Comma seperated value string of downloaded irradaince data [Required]'
)
parser.add_argument(
'--seq-length',
type=int,
default=64,
help=
'How many data points are needed to make one prediction [default: 64]'
)
parser.add_argument(
'--batch-size',
type=int,
default=64,
help='Batch size of the training data [default: 64]'
)
parser.add_argument(
'--model-name',
type=str,
default='model',
help='Name of the saved model [default: model]'
)
parser.add_argument(
'--start-date',
type=str,
default=None,
help='Start date if you want to slice [default: None]'
)
parser.add_argument(
'--end-date',
type=str,
default=None,
help='End date if you want to slice [default: None]'
)
parser.add_argument(
'--hidden-size',
type=int,
default=35,
help='How many hidden neurons per LSTM layer [default: 35]'
)
parser.add_argument(
'--num-layers',
type=int,
default=2,
help='How many LSTM layers [default: 2]'
)
parser.add_argument(
'--dropout',
type=float,
default=0.3,
help='Dropout rate [default: 0.3]'
)
parser.add_argument(
'--epochs', type=int, default=5, help='Number of epochs [default: 5]'
)
parser.add_argument(
'--lr',
type=float,
default=1e-2,
help='Beginning learning rate [default: 1e-2]'
)
parser.add_argument(
'--decay',
type=float,
default=1e-5,
help='Weight decay also known as L2 penalty [default: 1e-5]'
)
parser.add_argument(
'--step-size',
type=int,
default=2,
help=
'Decays the learning rate of each parameter group by gamma every step_size epochs [default: 2]'
)
parser.add_argument(
'--gamma',
type=float,
default=0.5,
help='Multiplicative factor of learning rate decay [default: 0.5]'
)
args = vars(parser.parse_args())
train(**args)
if __name__ == '__main__':
main()