PVNet 5.3.11__tar.gz → 5.3.13__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-5.3.11 → pvnet-5.3.13}/PKG-INFO +2 -2
- {pvnet-5.3.11 → pvnet-5.3.13}/PVNet.egg-info/PKG-INFO +2 -2
- {pvnet-5.3.11 → pvnet-5.3.13}/PVNet.egg-info/requires.txt +1 -1
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/datamodule.py +13 -11
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/utils.py +2 -2
- {pvnet-5.3.11 → pvnet-5.3.13}/pyproject.toml +1 -1
- {pvnet-5.3.11 → pvnet-5.3.13}/tests/test_datamodule.py +2 -2
- {pvnet-5.3.11 → pvnet-5.3.13}/tests/test_end2end.py +2 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/LICENSE +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/PVNet.egg-info/SOURCES.txt +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/PVNet.egg-info/dependency_links.txt +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/PVNet.egg-info/top_level.txt +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/README.md +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/__init__.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/load_model.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/__init__.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/base_model.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/ensemble.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/late_fusion/__init__.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/late_fusion/basic_blocks.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/late_fusion/encoders/__init__.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/late_fusion/encoders/basic_blocks.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/late_fusion/encoders/encoders3d.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/late_fusion/late_fusion.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/late_fusion/linear_networks/__init__.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/late_fusion/linear_networks/basic_blocks.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/late_fusion/linear_networks/networks.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/late_fusion/site_encoders/__init__.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/late_fusion/site_encoders/basic_blocks.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/models/late_fusion/site_encoders/encoders.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/optimizers.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/training/__init__.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/training/lightning_module.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/training/plots.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/pvnet/training/train.py +0 -0
- {pvnet-5.3.11 → pvnet-5.3.13}/setup.cfg +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PVNet
|
|
3
|
-
Version: 5.3.
|
|
3
|
+
Version: 5.3.13
|
|
4
4
|
Summary: PVNet
|
|
5
5
|
Author-email: Peter Dudfield <info@openclimatefix.org>
|
|
6
6
|
Requires-Python: <3.14,>=3.11
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
8
|
License-File: LICENSE
|
|
9
|
-
Requires-Dist: ocf-data-sampler>=1.0.
|
|
9
|
+
Requires-Dist: ocf-data-sampler>=1.0.19
|
|
10
10
|
Requires-Dist: numpy
|
|
11
11
|
Requires-Dist: pandas
|
|
12
12
|
Requires-Dist: matplotlib
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PVNet
|
|
3
|
-
Version: 5.3.
|
|
3
|
+
Version: 5.3.13
|
|
4
4
|
Summary: PVNet
|
|
5
5
|
Author-email: Peter Dudfield <info@openclimatefix.org>
|
|
6
6
|
Requires-Python: <3.14,>=3.11
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
8
|
License-File: LICENSE
|
|
9
|
-
Requires-Dist: ocf-data-sampler>=1.0.
|
|
9
|
+
Requires-Dist: ocf-data-sampler>=1.0.19
|
|
10
10
|
Requires-Dist: numpy
|
|
11
11
|
Requires-Dist: pandas
|
|
12
12
|
Requires-Dist: matplotlib
|
|
@@ -22,13 +22,13 @@ class PVNetDataModule(LightningDataModule):
|
|
|
22
22
|
def __init__(
|
|
23
23
|
self,
|
|
24
24
|
configuration: str,
|
|
25
|
-
|
|
25
|
+
train_periods: list[tuple[None | str, None | str]],
|
|
26
|
+
val_periods: list[tuple[None | str, None | str]],
|
|
27
|
+
batch_size: int,
|
|
26
28
|
num_workers: int = 0,
|
|
27
29
|
prefetch_factor: int | None = None,
|
|
28
30
|
persistent_workers: bool = False,
|
|
29
31
|
pin_memory: bool = False,
|
|
30
|
-
train_period: list[str | None] = [None, None],
|
|
31
|
-
val_period: list[str | None] = [None, None],
|
|
32
32
|
seed: int | None = None,
|
|
33
33
|
dataset_pickle_dir: str | None = None,
|
|
34
34
|
):
|
|
@@ -36,6 +36,10 @@ class PVNetDataModule(LightningDataModule):
|
|
|
36
36
|
|
|
37
37
|
Args:
|
|
38
38
|
configuration: Path to ocf-data-sampler configuration file.
|
|
39
|
+
train_periods: List of (start_time, end_time) tuples for the train dataset. If
|
|
40
|
+
start_time or end_time is None, it means that there is no lower/upper bound on the
|
|
41
|
+
time period.
|
|
42
|
+
val_periods: List of (start_time, end_time) tuples for the validation dataset.
|
|
39
43
|
batch_size: Batch size.
|
|
40
44
|
num_workers: Number of workers to use in multiprocess batch loading.
|
|
41
45
|
prefetch_factor: Number of batches loaded in advance by each worker.
|
|
@@ -44,8 +48,6 @@ class PVNetDataModule(LightningDataModule):
|
|
|
44
48
|
instances alive.
|
|
45
49
|
pin_memory: If True, the data loader will copy Tensors into device/CUDA pinned memory
|
|
46
50
|
before returning them.
|
|
47
|
-
train_period: Date range filter for train dataloader.
|
|
48
|
-
val_period: Date range filter for val dataloader.
|
|
49
51
|
seed: Random seed used in shuffling datasets.
|
|
50
52
|
dataset_pickle_dir: Directory in which the val and train set will be presaved as
|
|
51
53
|
pickle objects. Setting this speeds up instantiation of multiple workers a lot.
|
|
@@ -53,8 +55,8 @@ class PVNetDataModule(LightningDataModule):
|
|
|
53
55
|
super().__init__()
|
|
54
56
|
|
|
55
57
|
self.configuration = configuration
|
|
56
|
-
self.
|
|
57
|
-
self.
|
|
58
|
+
self.train_periods = train_periods
|
|
59
|
+
self.val_periods = val_periods
|
|
58
60
|
self.seed = seed
|
|
59
61
|
self.dataset_pickle_dir = dataset_pickle_dir
|
|
60
62
|
|
|
@@ -79,10 +81,10 @@ class PVNetDataModule(LightningDataModule):
|
|
|
79
81
|
# shuffled once
|
|
80
82
|
if stage == "fit":
|
|
81
83
|
# Prepare the train dataset
|
|
82
|
-
self.train_dataset = self._get_dataset(
|
|
84
|
+
self.train_dataset = self._get_dataset(self.train_periods)
|
|
83
85
|
|
|
84
86
|
# Prepare and pre-shuffle the val dataset and set seed for reproducibility
|
|
85
|
-
val_dataset = self._get_dataset(
|
|
87
|
+
val_dataset = self._get_dataset(self.val_periods)
|
|
86
88
|
|
|
87
89
|
shuffled_indices = np.random.default_rng(seed=self.seed).permutation(len(val_dataset))
|
|
88
90
|
self.val_dataset = Subset(val_dataset, shuffled_indices)
|
|
@@ -114,8 +116,8 @@ class PVNetDataModule(LightningDataModule):
|
|
|
114
116
|
if os.path.exists(filepath):
|
|
115
117
|
os.remove(filepath)
|
|
116
118
|
|
|
117
|
-
def _get_dataset(self,
|
|
118
|
-
return PVNetDataset(self.configuration,
|
|
119
|
+
def _get_dataset(self, time_periods: list[tuple[str | None, str | None]]) -> PVNetDataset:
|
|
120
|
+
return PVNetDataset(self.configuration, time_periods=time_periods)
|
|
119
121
|
|
|
120
122
|
def train_dataloader(self) -> DataLoader:
|
|
121
123
|
"""Construct train dataloader"""
|
|
@@ -98,7 +98,7 @@ def validate_batch_against_config(
|
|
|
98
98
|
model: "BaseModel",
|
|
99
99
|
) -> None:
|
|
100
100
|
"""Validates tensor shapes in batch against model configuration."""
|
|
101
|
-
logger.info("Performing batch shape validation against model config
|
|
101
|
+
logger.info("Performing batch shape validation against model config...")
|
|
102
102
|
|
|
103
103
|
# NWP validation
|
|
104
104
|
if model.include_nwp:
|
|
@@ -163,7 +163,7 @@ def validate_batch_against_config(
|
|
|
163
163
|
f"Generation data shape mismatch: expected {expected_shape}, got {actual_shape}"
|
|
164
164
|
)
|
|
165
165
|
|
|
166
|
-
logger.info("Batch shape validation successful
|
|
166
|
+
logger.info("Batch shape validation successful.")
|
|
167
167
|
|
|
168
168
|
|
|
169
169
|
def validate_gpu_config(config: DictConfig) -> None:
|
|
@@ -10,6 +10,8 @@ def test_model_trainer_fit(session_tmp_path, data_config_path, late_fusion_model
|
|
|
10
10
|
|
|
11
11
|
datamodule = PVNetDataModule(
|
|
12
12
|
configuration=data_config_path,
|
|
13
|
+
train_periods=[[None, None]],
|
|
14
|
+
val_periods=[[None, None]],
|
|
13
15
|
batch_size=2,
|
|
14
16
|
num_workers=2,
|
|
15
17
|
prefetch_factor=None,
|
|
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
|