Upload model - 9qyz1dl8
Browse files- README.md +30 -24
- datamodule_config.yaml +1 -1
- full_experiment_config.yaml +127 -0
- model_config.yaml +8 -4
- model_weights.safetensors +2 -2
README.md
CHANGED
|
@@ -3,18 +3,18 @@ language: en
|
|
| 3 |
library_name: pytorch
|
| 4 |
license: mit
|
| 5 |
---
|
|
|
|
|
|
|
|
|
|
| 6 |
|
|
|
|
|
|
|
| 7 |
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
# PVNet_summation
|
| 13 |
-
|
| 14 |
## Model Description
|
| 15 |
|
| 16 |
<!-- Provide a longer summary of what this model is/does. -->
|
| 17 |
-
This model class
|
| 18 |
|
| 19 |
- **Developed by:** openclimatefix
|
| 20 |
- **Model type:** Fusion model
|
|
@@ -26,38 +26,44 @@ This model class sums the output of the PVNet model's GSP level predictions to m
|
|
| 26 |
|
| 27 |
## Data
|
| 28 |
|
| 29 |
-
<!--
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
|
| 31 |
-
The model is trained on
|
| 32 |
-
of solar power across Great Britain. This model is trained to take those predictions and use them to estimate
|
| 33 |
-
the national total with uncertainty estimates.
|
| 34 |
|
| 35 |
|
|
|
|
|
|
|
| 36 |
### Preprocessing
|
| 37 |
|
| 38 |
-
|
| 39 |
|
| 40 |
|
| 41 |
## Results
|
| 42 |
|
|
|
|
| 43 |
The training logs for the current model can be found here:
|
| 44 |
-
- [https://wandb.ai/openclimatefix/pvnet_summation/runs/j9c7l2ob](https://wandb.ai/openclimatefix/pvnet_summation/runs/j9c7l2ob)
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
The training logs for all model runs of PVNet_summation can be found [here](https://wandb.ai/openclimatefix/pvnet_summation).
|
| 48 |
-
|
| 49 |
-
Some experimental notes can be found at in [the google doc](https://docs.google.com/document/d/1fbkfkBzp16WbnCg7RDuRDvgzInA6XQu3xh4NCjV-WDA/edit?usp=sharing)
|
| 50 |
|
| 51 |
|
| 52 |
-
|
|
|
|
| 53 |
|
| 54 |
Trained on a single NVIDIA Tesla T4
|
| 55 |
|
|
|
|
|
|
|
|
|
|
| 56 |
### Software
|
| 57 |
|
| 58 |
-
|
| 59 |
-
- [2] https://github.com/openclimatefix/PVNet
|
| 60 |
-
- [3] https://github.com/openclimatefix/ocf-data-sampler
|
| 61 |
|
| 62 |
-
|
| 63 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
library_name: pytorch
|
| 4 |
license: mit
|
| 5 |
---
|
| 6 |
+
<!--
|
| 7 |
+
Do not remove elements like the above surrounded by two curly braces and do not add any more of them. These entries are required by the PVNet library and are automaticall infilled when the model is uploaded to huggingface
|
| 8 |
+
-->
|
| 9 |
|
| 10 |
+
<!-- Title - e.g. PVNet2, WindNet, PVNet India -->
|
| 11 |
+
# PVNet2
|
| 12 |
|
| 13 |
+
<!-- Provide a longer summary of what this model is/does. -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
## Model Description
|
| 15 |
|
| 16 |
<!-- Provide a longer summary of what this model is/does. -->
|
| 17 |
+
This model class uses satellite data, and numerical weather predictions to forecast the near-term (~8 hours) PV power output at all GSPs. More information can be found in the model repo [1].
|
| 18 |
|
| 19 |
- **Developed by:** openclimatefix
|
| 20 |
- **Model type:** Fusion model
|
|
|
|
| 26 |
|
| 27 |
## Data
|
| 28 |
|
| 29 |
+
<!-- eg.
|
| 30 |
+
The model is trained on data from 2019-2022 and validated on data from 2022-2023. It uses NWP data from ECMWF IFS model, and the UK Met Office UKV model. It uses satellite data from the EUMETSAT MSG SEVIRI instrument.
|
| 31 |
+
|
| 32 |
+
See the data_config.yaml file for more information on the channels and window-size used for each input data source.
|
| 33 |
+
-->
|
| 34 |
|
| 35 |
+
The model is trained on data from 2019-2021 and validated on data from 2022. It uses NWP data from ECMWF IFS model, and the UK Met Office UKV model. It uses also uses inputs from OCF's cloudcasting model
|
|
|
|
|
|
|
| 36 |
|
| 37 |
|
| 38 |
+
|
| 39 |
+
<!-- The preprocessing section is not strictly nessessary but perhaps nice to have -->
|
| 40 |
### Preprocessing
|
| 41 |
|
| 42 |
+
Data is prepared with the `ocf_data_sampler/torch_datasets/datasets/pvnet_uk` Dataset [2].
|
| 43 |
|
| 44 |
|
| 45 |
## Results
|
| 46 |
|
| 47 |
+
<!-- Do not remove the lines below -->
|
| 48 |
The training logs for the current model can be found here:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
|
| 50 |
|
| 51 |
+
<!-- The hardware section is also just nice to have -->
|
| 52 |
+
<!-- ### Hardware
|
| 53 |
|
| 54 |
Trained on a single NVIDIA Tesla T4
|
| 55 |
|
| 56 |
+
-->
|
| 57 |
+
|
| 58 |
+
<!-- Do not remove the section below -->
|
| 59 |
### Software
|
| 60 |
|
| 61 |
+
This model was trained using the following Open Climate Fix packages:
|
|
|
|
|
|
|
| 62 |
|
| 63 |
+
- [1] https://github.com/openclimatefix/PVNet
|
| 64 |
+
- [2] https://github.com/openclimatefix/ocf-data-sampler
|
| 65 |
+
|
| 66 |
+
<!-- Especially do not change the two lines below -->
|
| 67 |
+
The versions of these packages can be found below:
|
| 68 |
+
- pvnet_summation==1.1.0.post0+git.3b6f1115.dirty
|
| 69 |
+
- ocf-data-sampler==0.5.26.post2+git.90ee263d.dirty
|
datamodule_config.yaml
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
pvnet_model:
|
| 2 |
model_id: openclimatefix/pvnet_uk_region_day_ahead
|
| 3 |
-
revision:
|
|
|
|
| 1 |
pvnet_model:
|
| 2 |
model_id: openclimatefix/pvnet_uk_region_day_ahead
|
| 3 |
+
revision: ace3469f6fb6db7356afe401c1aaf1a78505f4f7
|
full_experiment_config.yaml
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
trainer:
|
| 2 |
+
_target_: lightning.pytorch.trainer.trainer.Trainer
|
| 3 |
+
accelerator: gpu
|
| 4 |
+
devices:
|
| 5 |
+
- 1
|
| 6 |
+
min_epochs: null
|
| 7 |
+
max_epochs: 300
|
| 8 |
+
reload_dataloaders_every_n_epochs: 0
|
| 9 |
+
num_sanity_val_steps: 8
|
| 10 |
+
fast_dev_run: false
|
| 11 |
+
log_every_n_steps: 50
|
| 12 |
+
model:
|
| 13 |
+
_target_: pvnet_summation.training.lightning_module.PVNetSummationLightningModule
|
| 14 |
+
model:
|
| 15 |
+
_target_: pvnet_summation.models.horizon_dense_model.HorizonDenseModel
|
| 16 |
+
output_quantiles:
|
| 17 |
+
- 0.02
|
| 18 |
+
- 0.1
|
| 19 |
+
- 0.25
|
| 20 |
+
- 0.5
|
| 21 |
+
- 0.75
|
| 22 |
+
- 0.9
|
| 23 |
+
- 0.98
|
| 24 |
+
output_network:
|
| 25 |
+
_target_: pvnet.models.late_fusion.linear_networks.networks.ResFCNet
|
| 26 |
+
_partial_: true
|
| 27 |
+
fc_hidden_features: 128
|
| 28 |
+
n_res_blocks: 3
|
| 29 |
+
res_block_layers: 2
|
| 30 |
+
dropout_frac: 0.2
|
| 31 |
+
predict_difference_from_sum: true
|
| 32 |
+
force_non_crossing: true
|
| 33 |
+
beta: 3
|
| 34 |
+
use_horizon_encoding: true
|
| 35 |
+
use_solar_position: true
|
| 36 |
+
history_minutes: 120
|
| 37 |
+
forecast_minutes: 2160
|
| 38 |
+
interval_minutes: 30
|
| 39 |
+
num_input_locations: 331
|
| 40 |
+
input_quantiles:
|
| 41 |
+
- 0.02
|
| 42 |
+
- 0.1
|
| 43 |
+
- 0.25
|
| 44 |
+
- 0.5
|
| 45 |
+
- 0.75
|
| 46 |
+
- 0.9
|
| 47 |
+
- 0.98
|
| 48 |
+
optimizer:
|
| 49 |
+
_target_: pvnet_summation.optimizers.AdamWReduceLROnPlateau
|
| 50 |
+
lr: 3.0e-05
|
| 51 |
+
weight_decay: 0.1
|
| 52 |
+
amsgrad: true
|
| 53 |
+
patience: 10
|
| 54 |
+
factor: 0.2
|
| 55 |
+
threshold: 0.0
|
| 56 |
+
datamodule:
|
| 57 |
+
data_source_paths:
|
| 58 |
+
gsp: /mnt/storage_u2_30tb_a/ml_training_zarrs/pv/pvlive_gsp_new_boundaries_2019-2025.zarr
|
| 59 |
+
satellite:
|
| 60 |
+
- /mnt/storage_u2_30tb_a/ml_training_zarrs/sat/uk_sat_crops/v1/2019_nonhrv.zarr
|
| 61 |
+
- /mnt/storage_u2_30tb_a/ml_training_zarrs/sat/uk_sat_crops/v1/2020_nonhrv.zarr
|
| 62 |
+
- /mnt/storage_u2_30tb_a/ml_training_zarrs/sat/uk_sat_crops/v1/2021_nonhrv.zarr
|
| 63 |
+
- /mnt/storage_u2_30tb_a/ml_training_zarrs/sat/uk_sat_crops/v1/2022_nonhrv.zarr
|
| 64 |
+
nwp:
|
| 65 |
+
ukv:
|
| 66 |
+
- /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ukv_v7/UKV_intermediate_version_7.1.zarr
|
| 67 |
+
- /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ukv_v7/UKV_2021_missing.zarr
|
| 68 |
+
- /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ukv_v7/UKV_2022.zarr
|
| 69 |
+
ecmwf:
|
| 70 |
+
- /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ecmwf_v3/ECMWF_2019.zarr
|
| 71 |
+
- /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ecmwf_v3/ECMWF_2020.zarr
|
| 72 |
+
- /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ecmwf_v3/ECMWF_2021.zarr
|
| 73 |
+
- /mnt/storage_u2_30tb_a/ml_training_zarrs/nwp/ecmwf_v3/ECMWF_2022.zarr
|
| 74 |
+
cloudcasting: /mnt/raphael/fast/cloudcasting/simvp.zarr
|
| 75 |
+
batch_size: 32
|
| 76 |
+
num_workers: 16
|
| 77 |
+
prefetch_factor: 2
|
| 78 |
+
persistent_workers: true
|
| 79 |
+
max_num_train_samples: null
|
| 80 |
+
max_num_val_samples: null
|
| 81 |
+
pvnet_model:
|
| 82 |
+
model_id: openclimatefix/pvnet_uk_region_day_ahead
|
| 83 |
+
revision: ace3469f6fb6db7356afe401c1aaf1a78505f4f7
|
| 84 |
+
train_period:
|
| 85 |
+
- null
|
| 86 |
+
- '2021-12-31'
|
| 87 |
+
val_period:
|
| 88 |
+
- '2022-01-01'
|
| 89 |
+
- '2022-12-31'
|
| 90 |
+
seed: ${seed}
|
| 91 |
+
dataset_pickle_dir: /home/james/tmp/summation_dataset_pickles_pvnet_day_ahead
|
| 92 |
+
callbacks:
|
| 93 |
+
learning_rate_monitor:
|
| 94 |
+
_target_: lightning.pytorch.callbacks.LearningRateMonitor
|
| 95 |
+
logging_interval: epoch
|
| 96 |
+
model_summary:
|
| 97 |
+
_target_: lightning.pytorch.callbacks.ModelSummary
|
| 98 |
+
max_depth: 3
|
| 99 |
+
model_checkpoint:
|
| 100 |
+
_target_: lightning.pytorch.callbacks.ModelCheckpoint
|
| 101 |
+
monitor: ${resolve_monitor_loss:${model.model.output_quantiles}}
|
| 102 |
+
mode: min
|
| 103 |
+
save_top_k: 1
|
| 104 |
+
save_last: true
|
| 105 |
+
every_n_epochs: 1
|
| 106 |
+
verbose: false
|
| 107 |
+
filename: epoch={epoch}-step={step}
|
| 108 |
+
dirpath: checkpoints/${model_name}
|
| 109 |
+
auto_insert_metric_name: false
|
| 110 |
+
save_on_train_epoch_end: false
|
| 111 |
+
logger:
|
| 112 |
+
wandb:
|
| 113 |
+
_target_: lightning.pytorch.loggers.wandb.WandbLogger
|
| 114 |
+
project: pvnet_summation
|
| 115 |
+
name: ${model_name}
|
| 116 |
+
save_dir: ./
|
| 117 |
+
offline: false
|
| 118 |
+
id: null
|
| 119 |
+
log_model: false
|
| 120 |
+
prefix: ''
|
| 121 |
+
job_type: train
|
| 122 |
+
group: ''
|
| 123 |
+
tags: []
|
| 124 |
+
sample_save_dir: /home/james/repos/pvnet-summation/presaved_saved_samples
|
| 125 |
+
work_dir: ${hydra:runtime.cwd}
|
| 126 |
+
model_name: pvnet_day_ahead
|
| 127 |
+
seed: 2727831
|
model_config.yaml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
_target_: pvnet_summation.models.
|
| 2 |
output_quantiles:
|
| 3 |
- 0.02
|
| 4 |
- 0.1
|
|
@@ -11,14 +11,18 @@ output_network:
|
|
| 11 |
_target_: pvnet.models.late_fusion.linear_networks.networks.ResFCNet
|
| 12 |
_partial_: true
|
| 13 |
fc_hidden_features: 128
|
| 14 |
-
n_res_blocks:
|
| 15 |
res_block_layers: 2
|
| 16 |
-
dropout_frac: 0.
|
| 17 |
predict_difference_from_sum: true
|
| 18 |
-
|
|
|
|
|
|
|
|
|
|
| 19 |
history_minutes: 120
|
| 20 |
forecast_minutes: 2160
|
| 21 |
interval_minutes: 30
|
|
|
|
| 22 |
input_quantiles:
|
| 23 |
- 0.02
|
| 24 |
- 0.1
|
|
|
|
| 1 |
+
_target_: pvnet_summation.models.horizon_dense_model.HorizonDenseModel
|
| 2 |
output_quantiles:
|
| 3 |
- 0.02
|
| 4 |
- 0.1
|
|
|
|
| 11 |
_target_: pvnet.models.late_fusion.linear_networks.networks.ResFCNet
|
| 12 |
_partial_: true
|
| 13 |
fc_hidden_features: 128
|
| 14 |
+
n_res_blocks: 3
|
| 15 |
res_block_layers: 2
|
| 16 |
+
dropout_frac: 0.2
|
| 17 |
predict_difference_from_sum: true
|
| 18 |
+
force_non_crossing: true
|
| 19 |
+
beta: 3
|
| 20 |
+
use_horizon_encoding: true
|
| 21 |
+
use_solar_position: true
|
| 22 |
history_minutes: 120
|
| 23 |
forecast_minutes: 2160
|
| 24 |
interval_minutes: 30
|
| 25 |
+
num_input_locations: 331
|
| 26 |
input_quantiles:
|
| 27 |
- 0.02
|
| 28 |
- 0.1
|
model_weights.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f0f6bd8d607aea0010b37213faf23c92cd7104cdd5a8aefcd2706e948f438f08
|
| 3 |
+
size 1605412
|