PVNet 4.0.7__tar.gz → 4.0.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pvnet-4.0.7 → pvnet-4.0.9}/PKG-INFO +2 -2
- {pvnet-4.0.7 → pvnet-4.0.9}/PVNet.egg-info/PKG-INFO +2 -2
- {pvnet-4.0.7 → pvnet-4.0.9}/PVNet.egg-info/requires.txt +1 -1
- pvnet-4.0.9/pvnet/__init__.py +2 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/multimodal.py +3 -2
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/multimodal_base.py +4 -5
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/site_encoders/encoders.py +2 -3
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/unimodal_teacher.py +3 -2
- {pvnet-4.0.7 → pvnet-4.0.9}/pyproject.toml +1 -1
- {pvnet-4.0.7 → pvnet-4.0.9}/tests/test_end2end.py +5 -1
- pvnet-4.0.7/pvnet/__init__.py +0 -2
- {pvnet-4.0.7 → pvnet-4.0.9}/LICENSE +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/MANIFEST.in +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/PVNet.egg-info/SOURCES.txt +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/PVNet.egg-info/dependency_links.txt +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/PVNet.egg-info/top_level.txt +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/README.md +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/callbacks.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/data/__init__.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/data/base_datamodule.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/data/site_datamodule.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/data/uk_regional_datamodule.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/load_model.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/__init__.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/base_model.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/baseline/__init__.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/baseline/last_value.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/baseline/single_value.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/ensemble.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/model_cards/pv_india_model_card_template.md +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/model_cards/pv_uk_regional_model_card_template.md +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/model_cards/wind_india_model_card_template.md +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/__init__.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/basic_blocks.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/encoders/__init__.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/encoders/basic_blocks.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/encoders/encoders2d.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/encoders/encoders3d.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/encoders/encodersRNN.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/linear_networks/__init__.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/linear_networks/basic_blocks.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/linear_networks/networks.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/site_encoders/__init__.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/multimodal/site_encoders/basic_blocks.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/models/utils.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/optimizers.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/training.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/pvnet/utils.py +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/setup.cfg +0 -0
- {pvnet-4.0.7 → pvnet-4.0.9}/tests/test_utils.py +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PVNet
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.9
|
|
4
4
|
Summary: PVNet
|
|
5
5
|
Author-email: Peter Dudfield <info@openclimatefix.org>
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
7
7
|
License-File: LICENSE
|
|
8
|
-
Requires-Dist:
|
|
8
|
+
Requires-Dist: ocf-data-sampler==0.1.16
|
|
9
9
|
Requires-Dist: ocf_datapipes>=3.3.34
|
|
10
10
|
Requires-Dist: ocf_ml_metrics>=0.0.11
|
|
11
11
|
Requires-Dist: numpy
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PVNet
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.9
|
|
4
4
|
Summary: PVNet
|
|
5
5
|
Author-email: Peter Dudfield <info@openclimatefix.org>
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
7
7
|
License-File: LICENSE
|
|
8
|
-
Requires-Dist:
|
|
8
|
+
Requires-Dist: ocf-data-sampler==0.1.16
|
|
9
9
|
Requires-Dist: ocf_datapipes>=3.3.34
|
|
10
10
|
Requires-Dist: ocf_ml_metrics>=0.0.11
|
|
11
11
|
Requires-Dist: numpy
|
|
@@ -345,10 +345,11 @@ class Model(MultimodalBaseModel):
|
|
|
345
345
|
modes["id"] = id_embedding
|
|
346
346
|
|
|
347
347
|
if self.include_sun:
|
|
348
|
+
# Use only new direct keys
|
|
348
349
|
sun = torch.cat(
|
|
349
350
|
(
|
|
350
|
-
x[
|
|
351
|
-
x[
|
|
351
|
+
x["solar_azimuth"],
|
|
352
|
+
x["solar_elevation"],
|
|
352
353
|
),
|
|
353
354
|
dim=1,
|
|
354
355
|
).float()
|
|
@@ -46,11 +46,10 @@ class MultimodalBaseModel(BaseModel):
|
|
|
46
46
|
)[:, : self.nwp_encoders_dict[nwp_source].sequence_length]
|
|
47
47
|
|
|
48
48
|
if self.include_sun:
|
|
49
|
-
|
|
49
|
+
sun_len = self.forecast_len + self.history_len + 1
|
|
50
|
+
# Slice off end of solar coords
|
|
50
51
|
for s in ["solar_azimuth", "solar_elevation"]:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
sun_len = self.forecast_len + self.history_len + 1
|
|
54
|
-
new_batch[key] = new_batch[key][:, :sun_len]
|
|
52
|
+
if s in new_batch.keys():
|
|
53
|
+
new_batch[s] = new_batch[s][:, :sun_len]
|
|
55
54
|
|
|
56
55
|
return new_batch
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
import einops
|
|
6
6
|
import torch
|
|
7
|
-
from ocf_datapipes.batch import BatchKey
|
|
8
7
|
from torch import nn
|
|
9
8
|
|
|
10
9
|
from pvnet.models.multimodal.linear_networks.networks import ResFCNet2
|
|
@@ -75,13 +74,13 @@ class SimpleLearnedAggregator(AbstractSitesEncoder):
|
|
|
75
74
|
)
|
|
76
75
|
|
|
77
76
|
def _calculate_attention(self, x):
|
|
78
|
-
gsp_ids = x[
|
|
77
|
+
gsp_ids = x["gsp_id"].squeeze().int()
|
|
79
78
|
attention = self._attention_network(gsp_ids)
|
|
80
79
|
return attention
|
|
81
80
|
|
|
82
81
|
def _encode_value(self, x):
|
|
83
82
|
# Shape: [batch size, sequence length, PV site]
|
|
84
|
-
pv_site_seqs = x[
|
|
83
|
+
pv_site_seqs = x["pv"].float()
|
|
85
84
|
batch_size = pv_site_seqs.shape[0]
|
|
86
85
|
|
|
87
86
|
pv_site_seqs = pv_site_seqs.swapaxes(1, 2).flatten(0, 1)
|
|
@@ -305,10 +305,11 @@ class Model(MultimodalBaseModel):
|
|
|
305
305
|
modes["id"] = id_embedding
|
|
306
306
|
|
|
307
307
|
if self.include_sun:
|
|
308
|
+
# Use only new direct keys
|
|
308
309
|
sun = torch.cat(
|
|
309
310
|
(
|
|
310
|
-
x["
|
|
311
|
-
x["
|
|
311
|
+
x["solar_azimuth"],
|
|
312
|
+
x["solar_elevation"],
|
|
312
313
|
),
|
|
313
314
|
dim=1,
|
|
314
315
|
).float()
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import lightning
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
def test_model_trainer_fit(multimodal_model, sample_train_val_datamodule):
|
|
4
|
+
"""Test end-to-end training."""
|
|
5
|
+
# Get a sample batch for testing
|
|
5
6
|
batch = next(iter(sample_train_val_datamodule.train_dataloader()))
|
|
7
|
+
|
|
8
|
+
# Run a forward pass to verify the model works with the data
|
|
6
9
|
y = multimodal_model(batch)
|
|
7
10
|
|
|
11
|
+
# Train the model for one batch
|
|
8
12
|
trainer = lightning.pytorch.trainer.trainer.Trainer(fast_dev_run=True, accelerator="cpu")
|
|
9
13
|
trainer.fit(model=multimodal_model, datamodule=sample_train_val_datamodule)
|
pvnet-4.0.7/pvnet/__init__.py
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|