configs.example/callbacks/default.yaml DELETED
@@ -1,30 +0,0 @@
1
- early_stopping:
2
- _target_: pvnet.callbacks.MainEarlyStopping
3
- # name of the logged metric which determines when model is improving
4
- monitor: "${resolve_monitor_loss:${model.output_quantiles}}"
5
- mode: "min" # can be "max" or "min"
6
- patience: 10 # how many epochs (or val check periods) of not improving until training stops
7
- min_delta: 0 # minimum change in the monitored metric needed to qualify as an improvement
8
-
9
- learning_rate_monitor:
10
- _target_: lightning.pytorch.callbacks.LearningRateMonitor
11
- logging_interval: "epoch"
12
-
13
- model_summary:
14
- _target_: lightning.pytorch.callbacks.ModelSummary
15
- max_depth: 3
16
-
17
- model_checkpoint:
18
- _target_: lightning.pytorch.callbacks.ModelCheckpoint
19
- # name of the logged metric which determines when model is improving
20
- monitor: "${resolve_monitor_loss:${model.output_quantiles}}"
21
- mode: "min" # can be "max" or "min"
22
- save_top_k: 1 # save k best models (determined by above metric)
23
- save_last: True # additionaly always save model from last epoch
24
- every_n_epochs: 1
25
- verbose: False
26
- filename: "epoch={epoch}-step={step}"
27
- # The path to where the model checkpoints will be stored
28
- dirpath: "PLACEHOLDER/${model_name}" #${..model_name}
29
- auto_insert_metric_name: False
30
- save_on_train_epoch_end: False
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/callbacks/none.yaml DELETED
File without changes
configs.example/callbacks/wandb.yaml DELETED
@@ -1,26 +0,0 @@
1
- defaults:
2
- - default.yaml
3
-
4
- watch_model:
5
- _target_: src.callbacks.wandb_callbacks.WatchModel
6
- log: "all"
7
- log_freq: 100
8
-
9
- upload_code_as_artifact:
10
- _target_: src.callbacks.wandb_callbacks.UploadCodeAsArtifact
11
- code_dir: ${work_dir}/src
12
-
13
- upload_ckpts_as_artifact:
14
- _target_: src.callbacks.wandb_callbacks.UploadCheckpointsAsArtifact
15
- ckpt_dir: "checkpoints/"
16
- upload_best_only: True
17
-
18
- log_f1_precision_recall_heatmap:
19
- _target_: src.callbacks.wandb_callbacks.LogF1PrecRecHeatmap
20
-
21
- log_confusion_matrix:
22
- _target_: src.callbacks.wandb_callbacks.LogConfusionMatrix
23
-
24
- log_image_predictions:
25
- _target_: src.callbacks.wandb_callbacks.LogImagePredictions
26
- num_samples: 8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/config.yaml DELETED
@@ -1,45 +0,0 @@
1
- # @package _global_
2
-
3
- # specify here default training configuration
4
- defaults:
5
- - _self_
6
- - trainer: default.yaml
7
- - model: multimodal.yaml
8
- - datamodule: premade_samples.yaml
9
- - callbacks: default.yaml # set this to null if you don't want to use callbacks
10
- - logger: wandb.yaml # set logger here or use command line (e.g. `python run.py logger=wandb`)
11
- - experiment: null
12
- - hparams_search: null
13
- - hydra: default.yaml
14
-
15
- renewable: "pv_uk"
16
-
17
- # enable color logging
18
- # - override hydra/hydra_logging: colorlog
19
- # - override hydra/job_logging: colorlog
20
-
21
- # path to original working directory
22
- # hydra hijacks working directory by changing it to the current log directory,
23
- # so it's useful to have this path as a special variable
24
- # learn more here: https://hydra.cc/docs/next/tutorials/basic/running_your_app/working_directory
25
- work_dir: ${hydra:runtime.cwd}
26
-
27
- model_name: "default"
28
-
29
- # use `python run.py debug=true` for easy debugging!
30
- # this will run 1 train, val and test loop with only 1 batch
31
- # equivalent to running `python run.py trainer.fast_dev_run=true`
32
- # (this is placed here just for easier access from command line)
33
- debug: False
34
-
35
- # pretty print config at the start of the run using Rich library
36
- print_config: True
37
-
38
- # disable python warnings if they annoy you
39
- ignore_warnings: True
40
-
41
- # check performance on test set, using the best model achieved during training
42
- # lightning chooses best model based on metric specified in checkpoint callback
43
- test_after_training: False
44
-
45
- seed: 2727831
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/datamodule/configuration/example_configuration.yaml DELETED
@@ -1,288 +0,0 @@
1
- general:
2
- description: Example config for producing PVNet samples
3
- name: example_config
4
-
5
- input_data:
6
-
7
- # Either use Site OR GSP configuration
8
- site:
9
- # Path to Site data in NetCDF format
10
- file_path: PLACEHOLDER.nc
11
- # Path to metadata in CSV format
12
- metadata_file_path: PLACEHOLDER.csv
13
- time_resolution_minutes: 15
14
- interval_start_minutes: -60
15
- # Specified for intraday currently
16
- interval_end_minutes: 480
17
- dropout_timedeltas_minutes: []
18
- dropout_fraction: 0 # Fraction of samples with dropout
19
-
20
- gsp:
21
- # Path to GSP data in zarr format
22
- # e.g. gs://solar-pv-nowcasting-data/PV/GSP/v7/pv_gsp.zarr
23
- zarr_path: PLACEHOLDER.zarr
24
- interval_start_minutes: -60
25
- # Specified for intraday currently
26
- interval_end_minutes: 480
27
- time_resolution_minutes: 30
28
- # Random value from the list below will be chosen as the delay when dropout is used
29
- # If set to null no dropout is applied. Only values before t0 are dropped out for GSP.
30
- # Values after t0 are assumed as targets and cannot be dropped.
31
- dropout_timedeltas_minutes: []
32
- dropout_fraction: 0 # Fraction of samples with dropout
33
-
34
- nwp:
35
-
36
- ecmwf:
37
- provider: ecmwf
38
- # Path to ECMWF NWP data in zarr format
39
- # n.b. It is not necessary to use multiple or any NWP data. These entries can be removed
40
- zarr_path: PLACEHOLDER.zarr
41
- interval_start_minutes: -60
42
- # Specified for intraday currently
43
- interval_end_minutes: 480
44
- time_resolution_minutes: 60
45
- channels:
46
- - t2m # 2-metre temperature
47
- - dswrf # downwards short-wave radiation flux
48
- - dlwrf # downwards long-wave radiation flux
49
- - hcc # high cloud cover
50
- - mcc # medium cloud cover
51
- - lcc # low cloud cover
52
- - tcc # total cloud cover
53
- - sde # snow depth water equivalent
54
- - sr # direct solar radiation
55
- - duvrs # downwards UV radiation at surface
56
- - prate # precipitation rate
57
- - u10 # 10-metre U component of wind speed
58
- - u100 # 100-metre U component of wind speed
59
- - u200 # 200-metre U component of wind speed
60
- - v10 # 10-metre V component of wind speed
61
- - v100 # 100-metre V component of wind speed
62
- - v200 # 200-metre V component of wind speed
63
- # The following channels are accumulated and need to be diffed
64
- accum_channels:
65
- - dswrf # downwards short-wave radiation flux
66
- - dlwrf # downwards long-wave radiation flux
67
- - sr # direct solar radiation
68
- - duvrs # downwards UV radiation at surface
69
- image_size_pixels_height: 24
70
- image_size_pixels_width: 24
71
- dropout_timedeltas_minutes: [-360]
72
- dropout_fraction: 1.0 # Fraction of samples with dropout
73
- max_staleness_minutes: null
74
- normalisation_constants:
75
- t2m:
76
- mean: 283.48333740234375
77
- std: 3.692270040512085
78
- dswrf:
79
- mean: 11458988.0
80
- std: 13025427.0
81
- dlwrf:
82
- mean: 27187026.0
83
- std: 15855867.0
84
- hcc:
85
- mean: 0.3961029052734375
86
- std: 0.42244860529899597
87
- mcc:
88
- mean: 0.3288780450820923
89
- std: 0.38039860129356384
90
- lcc:
91
- mean: 0.44901806116104126
92
- std: 0.3791404366493225
93
- tcc:
94
- mean: 0.7049227356910706
95
- std: 0.37487083673477173
96
- sde:
97
- mean: 8.107526082312688e-05
98
- std: 0.000913831521756947 # Mapped from "sd" in the Python file
99
- sr:
100
- mean: 12905302.0
101
- std: 16294988.0
102
- duvrs:
103
- mean: 1305651.25
104
- std: 1445635.25
105
- prate:
106
- mean: 3.108070450252853e-05
107
- std: 9.81039775069803e-05
108
- u10:
109
- mean: 1.7677178382873535
110
- std: 5.531515598297119
111
- u100:
112
- mean: 2.393547296524048
113
- std: 7.2320556640625
114
- u200:
115
- mean: 2.7963004112243652
116
- std: 8.049470901489258
117
- v10:
118
- mean: 0.985887885093689
119
- std: 5.411230564117432
120
- v100:
121
- mean: 1.4244288206100464
122
- std: 6.944501876831055
123
- v200:
124
- mean: 1.6010299921035767
125
- std: 7.561611652374268
126
- # Added diff_ keys for the channels under accum_channels:
127
- diff_dlwrf:
128
- mean: 1136464.0
129
- std: 131942.03125
130
- diff_dswrf:
131
- mean: 420584.6875
132
- std: 715366.3125
133
- diff_duvrs:
134
- mean: 48265.4765625
135
- std: 81605.25
136
- diff_sr:
137
- mean: 469169.5
138
- std: 818950.6875
139
-
140
- ukv:
141
- provider: ukv
142
- # Path to UKV NWP data in zarr format
143
- # e.g. gs://solar-pv-nowcasting-data/NWP/UK_Met_Office/UKV_intermediate_version_7.zarr
144
- # n.b. It is not necessary to use multiple or any NWP data. These entries can be removed
145
- zarr_path: PLACEHOLDER.zarr
146
- interval_start_minutes: -60
147
- # Specified for intraday currently
148
- interval_end_minutes: 480
149
- time_resolution_minutes: 60
150
- channels:
151
- - t # 2-metre temperature
152
- - dswrf # downwards short-wave radiation flux
153
- - dlwrf # downwards long-wave radiation flux
154
- - hcc # high cloud cover
155
- - mcc # medium cloud cover
156
- - lcc # low cloud cover
157
- - sde # snow depth water equivalent
158
- - r # relative humidty
159
- - vis # visibility
160
- - si10 # 10-metre wind speed
161
- - wdir10 # 10-metre wind direction
162
- - prate # precipitation rate
163
- # These variables exist in CEDA training data but not in the live MetOffice live service
164
- - hcct # height of convective cloud top, meters above surface. NaN if no clouds
165
- - cdcb # height of lowest cloud base > 3 oktas
166
- - dpt # dew point temperature
167
- - prmsl # mean sea level pressure
168
- - h # geometrical? (maybe geopotential?) height
169
- image_size_pixels_height: 24
170
- image_size_pixels_width: 24
171
- dropout_timedeltas_minutes: [-360]
172
- dropout_fraction: 1.0 # Fraction of samples with dropout
173
- max_staleness_minutes: null
174
- normalisation_constants:
175
- t:
176
- mean: 283.64913206
177
- std: 4.38818501
178
- dswrf:
179
- mean: 111.28265039
180
- std: 190.47216887
181
- dlwrf:
182
- mean: 325.03130139
183
- std: 39.45988077
184
- hcc:
185
- mean: 29.11949682
186
- std: 38.07184418
187
- mcc:
188
- mean: 40.88984494
189
- std: 41.91144559
190
- lcc:
191
- mean: 50.08362643
192
- std: 39.33210726
193
- sde:
194
- mean: 0.00289545
195
- std: 0.1029753
196
- r:
197
- mean: 81.79229501
198
- std: 11.45012499
199
- vis:
200
- mean: 32262.03285118
201
- std: 21578.97975625
202
- si10:
203
- mean: 6.88348448
204
- std: 3.94718813
205
- wdir10:
206
- mean: 199.41891636
207
- std: 94.08407495
208
- prate:
209
- mean: 3.45793433e-05
210
- std: 0.00021497
211
- hcct:
212
- mean: -18345.97478167
213
- std: 18382.63958991
214
- cdcb:
215
- mean: 1412.26599062
216
- std: 2126.99350113
217
- dpt:
218
- mean: 280.54379901
219
- std: 4.57250482
220
- prmsl:
221
- mean: 101321.61574029
222
- std: 1252.71790539
223
- h:
224
- mean: 2096.51991356
225
- std: 1075.77812282
226
-
227
- satellite:
228
- # Path to Satellite data (non-HRV) in zarr format
229
- # e.g. gs://solar-pv-nowcasting-data/satellite/EUMETSAT/SEVIRI_RSS/v4/2020_nonhrv.zarr
230
- zarr_path: PLACEHOLDER.zarr
231
- interval_start_minutes: -30
232
- interval_end_minutes: 0
233
- time_resolution_minutes: 5
234
- channels:
235
- - IR_016 # Surface, cloud phase
236
- - IR_039 # Surface, clouds, wind fields
237
- - IR_087 # Surface, clouds, atmospheric instability
238
- - IR_097 # Ozone
239
- - IR_108 # Surface, clouds, wind fields, atmospheric instability
240
- - IR_120 # Surface, clouds, atmospheric instability
241
- - IR_134 # Cirrus cloud height, atmospheric instability
242
- - VIS006 # Surface, clouds, wind fields
243
- - VIS008 # Surface, clouds, wind fields
244
- - WV_062 # Water vapor, high level clouds, upper air analysis
245
- - WV_073 # Water vapor, atmospheric instability, upper-level dynamics
246
- image_size_pixels_height: 24
247
- image_size_pixels_width: 24
248
- dropout_timedeltas_minutes: []
249
- dropout_fraction: 0 # Fraction of samples with dropout
250
- normalisation_constants:
251
- IR_016:
252
- mean: 0.17594202
253
- std: 0.21462157
254
- IR_039:
255
- mean: 0.86167645
256
- std: 0.04618041
257
- IR_087:
258
- mean: 0.7719318
259
- std: 0.06687243
260
- IR_097:
261
- mean: 0.8014212
262
- std: 0.0468558
263
- IR_108:
264
- mean: 0.71254843
265
- std: 0.17482725
266
- IR_120:
267
- mean: 0.89058584
268
- std: 0.06115861
269
- IR_134:
270
- mean: 0.944365
271
- std: 0.04492306
272
- VIS006:
273
- mean: 0.09633306
274
- std: 0.12184761
275
- VIS008:
276
- mean: 0.11426069
277
- std: 0.13090034
278
- WV_062:
279
- mean: 0.7359355
280
- std: 0.16111417
281
- WV_073:
282
- mean: 0.62479186
283
- std: 0.12924142
284
-
285
- solar_position:
286
- interval_start_minutes: -60
287
- interval_end_minutes: 480
288
- time_resolution_minutes: 30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/datamodule/premade_batches.yaml DELETED
@@ -1,10 +0,0 @@
1
- _target_: pvnet.data.DataModule
2
- configuration: null
3
-
4
- # The sample_dir is the location batches were saved to using the save_batches.py script
5
- # The sample_dir should contain train and val subdirectories with batches
6
-
7
- sample_dir: "PLACEHOLDER"
8
- num_workers: 10
9
- prefetch_factor: 2
10
- batch_size: 8
 
 
 
 
 
 
 
 
 
 
 
configs.example/datamodule/streamed_batches.yaml DELETED
@@ -1,20 +0,0 @@
1
- _target_: pvnet.data.DataModule
2
- # Path to the data configuration yaml file. You can find examples in the configuration subdirectory
3
- # in configs.example/datamodule/configuration
4
- # Use the full local path such as: /FULL/PATH/PVNet/configs/datamodule/configuration/gcp_configuration.yaml"
5
-
6
- configuration: "PLACEHOLDER.yaml"
7
- num_workers: 20
8
- prefetch_factor: 2
9
- batch_size: 8
10
-
11
- sample_output_dir: "PLACEHOLDER"
12
- num_train_samples: 2
13
- num_val_samples: 1
14
-
15
- train_period:
16
- - null
17
- - "2022-05-07"
18
- val_period:
19
- - "2022-05-08"
20
- - "2023-05-08"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/experiment/baseline.yaml DELETED
@@ -1,21 +0,0 @@
1
- # @package _global_
2
-
3
- # to execute this experiment run:
4
- # python run.py experiment=example_simple.yaml
5
-
6
- defaults:
7
- - override /trainer: default.yaml # choose trainer from 'configs/trainer/'
8
- - override /model: baseline.yaml
9
- - override /datamodule: premade_samples.yaml
10
- - override /callbacks: default.yaml
11
- - override /logger: neptune.yaml
12
-
13
- # all parameters below will be merged with parameters from default configurations set above
14
- # this allows you to overwrite only specified parameters
15
-
16
- seed: 518
17
- validate_only: "1" # by putting this key in the config file, the model does not get trained.
18
-
19
- trainer:
20
- min_epochs: 1
21
- max_epochs: 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/experiment/conv3d_sat_nwp.yaml DELETED
@@ -1,23 +0,0 @@
1
- # @package _global_
2
-
3
- # to execute this experiment run:
4
- # python run.py experiment=example_simple.yaml
5
-
6
- defaults:
7
- - override /trainer: default.yaml # choose trainer from 'configs/trainer/'
8
- - override /model: conv3d_sat_nwp.yaml
9
- - override /datamodule: premade_samples.yaml
10
- - override /callbacks: default.yaml
11
- # - override /logger: neptune.yaml
12
-
13
- # all parameters below will be merged with parameters from default configurations set above
14
- # this allows you to overwrite only specified parameters
15
-
16
- seed: 518
17
-
18
- trainer:
19
- min_epochs: 1
20
- max_epochs: 10
21
-
22
- model:
23
- conv3d_channels: 32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/experiment/example_simple.yaml DELETED
@@ -1,27 +0,0 @@
1
- # @package _global_
2
-
3
- # to execute this experiment run:
4
- # python run.py experiment=example_simple.yaml
5
-
6
- defaults:
7
- - override /trainer: default.yaml # choose trainer from 'configs/trainer/'
8
- - override /model: conv3d_sat_nwp.yaml
9
- - override /datamodule: premade_samples.yaml
10
- - override /callbacks: default.yaml
11
- - override /logger: tensorboard.yaml
12
- - override /hparams_search: null
13
- - override /hydra: default.yaml
14
-
15
- # all parameters below will be merged with parameters from default configurations set above
16
- # this allows you to overwrite only specified parameters
17
-
18
- seed: 518
19
-
20
- trainer:
21
- min_epochs: 1
22
- max_epochs: 2
23
-
24
- datamodule:
25
- batch_size: 16
26
-
27
- validate_only: "1" # by putting this key in the config file, the model does not get trained.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/experiment/test.yaml DELETED
@@ -1,33 +0,0 @@
1
- # @package _global_
2
-
3
- # to execute this experiment run:
4
- # python run.py experiment=test.yaml
5
-
6
- defaults:
7
- - override /trainer: default.yaml # choose trainer from 'configs/trainer/'
8
- - override /model: test.yaml
9
- - override /datamodule: premade_samples.yaml
10
- - override /callbacks: default.yaml
11
-
12
- # all parameters below will be merged with parameters from default configurations set above
13
- # this allows you to overwrite only specified parameters
14
-
15
- seed: 518
16
-
17
- trainer:
18
- min_epochs: 0
19
- max_epochs: 2
20
- reload_dataloaders_every_n_epochs: 0
21
- limit_train_batches: 2000
22
- limit_val_batches: 100
23
- limit_test_batches: 100
24
- val_check_interval: 100
25
- num_sanity_val_steps: 8
26
- accumulate_grad_batches: 4
27
- #fast_dev_run: 3
28
-
29
- datamodule:
30
- num_workers: 10
31
- prefetch_factor: 2
32
- batch_size: 8
33
- #validate_only: '1' # by putting this key in the config file, the model does not get trained.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/hparams_search/conv3d_optuna.yaml DELETED
@@ -1,49 +0,0 @@
1
- # @package _global_
2
-
3
- # example hyperparameter optimization of some experiment with Optuna:
4
- # python run.py -m hparams_search=conv3d_optuna experiment=conv3d_sat_nwp
5
-
6
- defaults:
7
- - override /hydra/sweeper: optuna
8
-
9
- # choose metric which will be optimized by Optuna
10
- optimized_metric: "MSE/Validation_epoch"
11
-
12
- hydra:
13
- # here we define Optuna hyperparameter search
14
- # it optimizes for value returned from function with @hydra.main decorator
15
- # learn more here: https://hydra.cc/docs/next/plugins/optuna_sweeper
16
- sweeper:
17
- _target_: hydra_plugins.hydra_optuna_sweeper.optuna_sweeper.OptunaSweeper
18
- storage: null
19
- study_name: null
20
- n_jobs: 1
21
-
22
- # 'minimize' or 'maximize' the objective
23
- direction: minimize
24
-
25
- # number of experiments that will be executed
26
- n_trials: 20
27
-
28
- # choose Optuna hyperparameter sampler
29
- # learn more here: https://optuna.readthedocs.io/en/stable/reference/samplers.html
30
- sampler:
31
- _target_: optuna.samplers.TPESampler
32
- seed: 12345
33
- consider_prior: true
34
- prior_weight: 1.0
35
- consider_magic_clip: true
36
- consider_endpoints: false
37
- n_startup_trials: 10
38
- n_ei_candidates: 24
39
- multivariate: false
40
- warn_independent_sampling: true
41
-
42
- # define range of hyperparameters
43
- search_space:
44
- model.include_pv_yield_history:
45
- type: categorical
46
- choices: [true, false]
47
- model.include_future_satellite:
48
- type: categorical
49
- choices: [true, false]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/hydra/default.yaml DELETED
@@ -1,14 +0,0 @@
1
- # output paths for hydra logs
2
- run:
3
- # Local log directory for hydra
4
- dir: PLACEHOLDER/runs/${now:%Y-%m-%d}/${now:%H-%M-%S}
5
- sweep:
6
- # Local log directory for hydra
7
- dir: PLACEHOLDER/multiruns/${now:%Y-%m-%d_%H-%M-%S}
8
- subdir: ${hydra.job.num}
9
-
10
- # you can set here environment variables that are universal for all users
11
- # for system specific variables (like data paths) it's better to use .env file!
12
- job:
13
- env_set:
14
- EXAMPLE_VAR: "example_value"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/logger/csv.yaml DELETED
@@ -1,9 +0,0 @@
1
- # csv logger built in lightning
2
-
3
- csv:
4
- _target_: pytorch_lightning.loggers.csv_logs.CSVLogger
5
- # local path to log training process
6
- save_dir: "PLACEHOLDER"
7
- name: "csv/"
8
- version: null
9
- prefix: ""
 
 
 
 
 
 
 
 
 
 
configs.example/logger/many_loggers.yaml DELETED
@@ -1,7 +0,0 @@
1
- # train with many loggers at once
2
-
3
- defaults:
4
- - csv.yaml
5
- # - neptune.yaml
6
- # - tensorboard.yaml
7
- - wandb.yaml
 
 
 
 
 
 
 
 
configs.example/logger/neptune.yaml DELETED
@@ -1,8 +0,0 @@
1
- # https://neptune.ai
2
-
3
- neptune:
4
- _target_: pytorch_lightning.loggers.NeptuneLogger
5
- api_key: ${oc.env:NEPTUNE_API_TOKEN} # api key is loaded from environment variable
6
- # Neptune project placeholder
7
- project: PLACEHOLDER
8
- prefix: ""
 
 
 
 
 
 
 
 
 
configs.example/logger/tensorboard.yaml DELETED
@@ -1,11 +0,0 @@
1
- # https://www.tensorflow.org/tensorboard/
2
-
3
- tensorboard:
4
- _target_: pytorch_lightning.loggers.tensorboard.TensorBoardLogger
5
- # Path to use for tensorboard logs
6
- save_dir: "PLACEHOLDER"
7
- name: "default"
8
- version: "${model_name}"
9
- log_graph: False
10
- default_hp_metric: False
11
- prefix: ""
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/logger/wandb.yaml DELETED
@@ -1,17 +0,0 @@
1
- # https://wandb.ai
2
-
3
- wandb:
4
- _target_: lightning.pytorch.loggers.wandb.WandbLogger
5
- # wandb project to log to
6
- project: "PLACEHOLDER"
7
- name: "${model_name}"
8
- # location to store the wandb local logs
9
- save_dir: "PLACEHOLDER"
10
- offline: False # set True to store all logs only locally
11
- id: null # pass correct id to resume experiment!
12
- # entity: "" # set to name of your wandb team or just remove it
13
- log_model: False
14
- prefix: ""
15
- job_type: "train"
16
- group: ""
17
- tags: []
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/model/baseline.yaml DELETED
@@ -1,4 +0,0 @@
1
- _target_: pvnet.models.baseline.last_value.Model
2
-
3
- forecast_minutes: 120
4
- history_minutes: 30
 
 
 
 
 
configs.example/model/multimodal.yaml DELETED
@@ -1,115 +0,0 @@
1
- _target_: pvnet.models.multimodal.multimodal.Model
2
-
3
- output_quantiles: [0.02, 0.1, 0.25, 0.5, 0.75, 0.9, 0.98]
4
-
5
- #--------------------------------------------
6
- # NWP encoder
7
- #--------------------------------------------
8
-
9
- nwp_encoders_dict:
10
- ukv:
11
- _target_: pvnet.models.multimodal.encoders.encoders3d.DefaultPVNet
12
- _partial_: True
13
- in_channels: 2
14
- out_features: 256
15
- number_of_conv3d_layers: 6
16
- conv3d_channels: 32
17
- image_size_pixels: 24
18
- ecmwf:
19
- _target_: pvnet.models.multimodal.encoders.encoders3d.DefaultPVNet
20
- _partial_: True
21
- in_channels: 12
22
- out_features: 256
23
- number_of_conv3d_layers: 4
24
- conv3d_channels: 32
25
- image_size_pixels: 12
26
-
27
- #--------------------------------------------
28
- # Sat encoder settings
29
- #--------------------------------------------
30
-
31
- sat_encoder:
32
- _target_: pvnet.models.multimodal.encoders.encoders3d.DefaultPVNet
33
- _partial_: True
34
- in_channels: 11
35
- out_features: 256
36
- number_of_conv3d_layers: 6
37
- conv3d_channels: 32
38
- image_size_pixels: 24
39
-
40
- add_image_embedding_channel: False
41
-
42
- #--------------------------------------------
43
- # PV encoder settings
44
- #--------------------------------------------
45
-
46
- pv_encoder:
47
- _target_: pvnet.models.multimodal.site_encoders.encoders.SingleAttentionNetwork
48
- _partial_: True
49
- num_sites: 349
50
- out_features: 40
51
- num_heads: 4
52
- kdim: 40
53
- id_embed_dim: 20
54
-
55
- #--------------------------------------------
56
- # Tabular network settings
57
- #--------------------------------------------
58
-
59
- output_network:
60
- _target_: pvnet.models.multimodal.linear_networks.networks.ResFCNet2
61
- _partial_: True
62
- fc_hidden_features: 128
63
- n_res_blocks: 6
64
- res_block_layers: 2
65
- dropout_frac: 0.0
66
-
67
- embedding_dim: 16
68
- include_sun: True
69
- include_gsp_yield_history: False
70
- include_site_yield_history: False
71
-
72
- # The mapping between the location IDs and their embedding indices
73
- location_id_mapping:
74
- 1: 1
75
- 5: 2
76
- 110: 3
77
- # ...
78
-
79
- #--------------------------------------------
80
- # Times
81
- #--------------------------------------------
82
-
83
- # Foreast and time settings
84
- forecast_minutes: 480
85
- history_minutes: 120
86
-
87
- min_sat_delay_minutes: 60
88
-
89
- # These must also be set even if identical to forecast_minutes and history_minutes
90
- sat_history_minutes: 90
91
- pv_history_minutes: 180
92
-
93
- # These must be set for each NWP encoder
94
- nwp_history_minutes:
95
- ukv: 120
96
- ecmwf: 120
97
- nwp_forecast_minutes:
98
- ukv: 480
99
- ecmwf: 480
100
- # Optional; defaults to 60, so must be set for data with different time resolution
101
- nwp_interval_minutes:
102
- ukv: 60
103
- ecmwf: 60
104
-
105
- # ----------------------------------------------
106
- # Optimizer
107
- # ----------------------------------------------
108
- optimizer:
109
- _target_: pvnet.optimizers.EmbAdamWReduceLROnPlateau
110
- lr: 0.0001
111
- weight_decay: 0.01
112
- amsgrad: True
113
- patience: 5
114
- factor: 0.1
115
- threshold: 0.002
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/model/nwp_dwsrf_weighting.yaml DELETED
@@ -1,21 +0,0 @@
1
- _target_: pvnet.models.multimodal.nwp_weighting.Model
2
-
3
- #--------------------------------------------
4
- # Network settings
5
- #--------------------------------------------
6
-
7
- # Foreast and time settings
8
- forecast_minutes: 480
9
- history_minutes: 120
10
-
11
- nwp_history_minutes: 120
12
- nwp_forecast_minutes: 480
13
-
14
- nwp_image_size_pixels: 24
15
- dwsrf_channel: 1
16
-
17
- # ----------------------------------------------
18
-
19
- optimizer:
20
- _target_: pvnet.optimizers.AdamW
21
- lr: 0.0005
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/model/test.yaml DELETED
@@ -1,4 +0,0 @@
1
- _target_: pvnet.models.baseline.single_value.Model
2
-
3
- history_minutes: 120
4
- forecast_minutes: 360
 
 
 
 
 
configs.example/model/wind_multimodal.yaml DELETED
@@ -1,83 +0,0 @@
1
- _target_: pvnet.models.multimodal.multimodal.Model
2
-
3
- output_quantiles: [0.02, 0.1, 0.25, 0.5, 0.75, 0.9, 0.98]
4
-
5
- #--------------------------------------------
6
- # NWP encoder
7
- #--------------------------------------------
8
- nwp_encoders_dict:
9
- ecmwf:
10
- _target_: pvnet.models.multimodal.encoders.encoders3d.DefaultPVNet
11
- _partial_: True
12
- in_channels: 14
13
- out_features: 256
14
- number_of_conv3d_layers: 6
15
- conv3d_channels: 32
16
- image_size_pixels: 16
17
-
18
- #--------------------------------------------
19
- # Sensor encoder settings
20
- #--------------------------------------------
21
-
22
- wind_encoder:
23
- _target_: pvnet.models.multimodal.site_encoders.encoders.SingleAttentionNetwork
24
- _partial_: True
25
- num_sites: 19
26
- out_features: 40
27
- num_heads: 4
28
- kdim: 40
29
- id_embed_dim: 20
30
-
31
- #--------------------------------------------
32
- # Tabular network settings
33
- #--------------------------------------------
34
-
35
- output_network:
36
- _target_: pvnet.models.multimodal.linear_networks.networks.ResFCNet2
37
- _partial_: True
38
- fc_hidden_features: 128
39
- n_res_blocks: 6
40
- res_block_layers: 2
41
- dropout_frac: 0.0
42
-
43
- embedding_dim: 16
44
- include_sun: False
45
- include_gsp_yield_history: False
46
-
47
- # The mapping between the location IDs and their embedding indices
48
- location_id_mapping:
49
- 1: 1
50
- 5: 2
51
- 110: 3
52
- # ...
53
-
54
- #--------------------------------------------
55
- # Times
56
- #--------------------------------------------
57
-
58
- # Foreast and time settings
59
- forecast_minutes: 480
60
- history_minutes: 120
61
-
62
- min_sat_delay_minutes: 60
63
-
64
- # --- set to null if same as history_minutes ---
65
- sat_history_minutes: 90
66
- nwp_history_minutes: 60
67
- nwp_forecast_minutes: 2880
68
- pv_history_minutes: 180
69
- pv_interval_minutes: 15
70
- sat_interval_minutes: 15
71
-
72
- target_key: "sensor"
73
- # ----------------------------------------------
74
- # Optimizer
75
- # ----------------------------------------------
76
- optimizer:
77
- _target_: pvnet.optimizers.EmbAdamWReduceLROnPlateau
78
- lr: 0.0001
79
- weight_decay: 0.01
80
- amsgrad: True
81
- patience: 5
82
- factor: 0.1
83
- threshold: 0.002
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/readme.md DELETED
@@ -1,5 +0,0 @@
1
- This directory contains example configuration files for the PVNet project. Many paths will need to unique to each user. You can find these paths by searching for PLACEHOLDER within these logs. Not all of
2
- the values with a placeholder need to be set. For example in the logger subdirectory there are many different loggers with PLACEHOLDERS. If only one logger is used, then only that placeholder needs to be set.
3
-
4
- run experiments by:
5
- `python run.py experiment=example_simple `
 
 
 
 
 
 
configs.example/trainer/all_params.yaml DELETED
@@ -1,48 +0,0 @@
1
- _target_: pytorch_lightning.Trainer
2
-
3
- # default values for all trainer parameters
4
- checkpoint_callback: True
5
- default_root_dir: null
6
- gradient_clip_val: 0.0
7
- process_position: 0
8
- num_nodes: 1
9
- num_processes: 1
10
- gpus: null
11
- auto_select_gpus: False
12
- tpu_cores: null
13
- log_gpu_memory: null
14
- overfit_batches: 0.0
15
- track_grad_norm: -1
16
- check_val_every_n_epoch: 1
17
- fast_dev_run: False
18
- accumulate_grad_batches: 1
19
- max_epochs: 1
20
- min_epochs: 1
21
- max_steps: null
22
- min_steps: null
23
- limit_train_batches: 1.0
24
- limit_val_batches: 1.0
25
- limit_test_batches: 1.0
26
- val_check_interval: 1.0
27
- flush_logs_every_n_steps: 100
28
- log_every_n_steps: 50
29
- accelerator: null
30
- sync_batchnorm: False
31
- precision: 32
32
- weights_save_path: null
33
- num_sanity_val_steps: 2
34
- truncated_bptt_steps: null
35
- resume_from_checkpoint: null
36
- profiler: null
37
- benchmark: False
38
- deterministic: False
39
- reload_dataloaders_every_epoch: False
40
- auto_lr_find: False
41
- replace_sampler_ddp: True
42
- terminate_on_nan: False
43
- auto_scale_batch_size: False
44
- prepare_data_per_node: True
45
- plugins: null
46
- amp_backend: "native"
47
- amp_level: "O2"
48
- move_metrics_to_cpu: False
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
configs.example/trainer/default.yaml DELETED
@@ -1,14 +0,0 @@
1
- _target_: lightning.pytorch.trainer.trainer.Trainer
2
-
3
- # set `1` to train on GPU, `0` to train on CPU only
4
- accelerator: auto
5
- devices: auto
6
-
7
- min_epochs: null
8
- max_epochs: null
9
- reload_dataloaders_every_n_epochs: 0
10
- num_sanity_val_steps: 8
11
- fast_dev_run: false
12
-
13
- accumulate_grad_batches: 4
14
- log_every_n_steps: 50