PVNet 5.3.5__py3-none-any.whl → 5.3.6__py3-none-any.whl
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/utils.py +36 -38
- {pvnet-5.3.5.dist-info → pvnet-5.3.6.dist-info}/METADATA +1 -1
- {pvnet-5.3.5.dist-info → pvnet-5.3.6.dist-info}/RECORD +6 -6
- {pvnet-5.3.5.dist-info → pvnet-5.3.6.dist-info}/WHEEL +0 -0
- {pvnet-5.3.5.dist-info → pvnet-5.3.6.dist-info}/licenses/LICENSE +0 -0
- {pvnet-5.3.5.dist-info → pvnet-5.3.6.dist-info}/top_level.txt +0 -0
pvnet/utils.py
CHANGED
|
@@ -101,66 +101,64 @@ def validate_batch_against_config(
|
|
|
101
101
|
logger.info("Performing batch shape validation against model config.")
|
|
102
102
|
|
|
103
103
|
# NWP validation
|
|
104
|
-
if
|
|
104
|
+
if model.include_nwp:
|
|
105
105
|
if "nwp" not in batch:
|
|
106
|
-
raise ValueError(
|
|
107
|
-
"Model configured with 'nwp_encoders_dict' but 'nwp' data missing from batch."
|
|
108
|
-
)
|
|
106
|
+
raise ValueError("Model uses NWP data but 'nwp' missing from batch.")
|
|
109
107
|
|
|
110
|
-
for source
|
|
111
|
-
if source in
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
108
|
+
for source in model.nwp_encoders_dict:
|
|
109
|
+
if source not in batch["nwp"]:
|
|
110
|
+
raise ValueError(
|
|
111
|
+
f"Model uses NWP source '{source}' but it is missing from batch['nwp']."
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
enc = model.nwp_encoders_dict[source]
|
|
115
|
+
expected_channels = enc.in_channels - int(model.add_image_embedding_channel)
|
|
116
|
+
|
|
117
|
+
expected_shape = (
|
|
118
|
+
batch["nwp"][source]["nwp"].shape[0],
|
|
119
|
+
enc.sequence_length,
|
|
120
|
+
expected_channels,
|
|
121
|
+
enc.image_size_pixels,
|
|
122
|
+
enc.image_size_pixels,
|
|
123
|
+
)
|
|
124
|
+
actual_shape = tuple(batch["nwp"][source]["nwp"].shape)
|
|
125
|
+
if actual_shape != expected_shape:
|
|
126
|
+
raise ValueError(
|
|
127
|
+
f"NWP.{source} shape mismatch: expected {expected_shape}, got {actual_shape}"
|
|
123
128
|
)
|
|
124
|
-
if tuple(nwp_data["nwp"].shape) != expected:
|
|
125
|
-
actual_shape = tuple(nwp_data["nwp"].shape)
|
|
126
|
-
raise ValueError(
|
|
127
|
-
f"NWP.{source} shape mismatch: expected {expected}, got {actual_shape}"
|
|
128
|
-
)
|
|
129
129
|
|
|
130
130
|
# Satellite validation
|
|
131
|
-
if
|
|
131
|
+
if model.include_sat:
|
|
132
132
|
if "satellite_actual" not in batch:
|
|
133
133
|
raise ValueError(
|
|
134
|
-
"Model
|
|
134
|
+
"Model uses satellite data but 'satellite_actual' missing from batch."
|
|
135
135
|
)
|
|
136
136
|
|
|
137
137
|
enc = model.sat_encoder
|
|
138
|
-
expected_channels = enc.in_channels
|
|
139
|
-
if model.add_image_embedding_channel:
|
|
140
|
-
expected_channels -= 1
|
|
138
|
+
expected_channels = enc.in_channels - int(model.add_image_embedding_channel)
|
|
141
139
|
|
|
142
|
-
|
|
140
|
+
expected_shape = (
|
|
143
141
|
batch["satellite_actual"].shape[0],
|
|
144
142
|
enc.sequence_length,
|
|
145
143
|
expected_channels,
|
|
146
144
|
enc.image_size_pixels,
|
|
147
145
|
enc.image_size_pixels,
|
|
148
146
|
)
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
raise ValueError(
|
|
147
|
+
actual_shape = tuple(batch["satellite_actual"].shape)
|
|
148
|
+
if actual_shape != expected_shape:
|
|
149
|
+
raise ValueError(
|
|
150
|
+
f"Satellite shape mismatch: expected {expected_shape}, got {actual_shape}"
|
|
151
|
+
)
|
|
152
152
|
|
|
153
|
-
# generation validation
|
|
154
153
|
key = "generation"
|
|
155
154
|
if key in batch:
|
|
156
155
|
total_minutes = model.history_minutes + model.forecast_minutes
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
if
|
|
161
|
-
actual_shape = tuple(batch[key].shape)
|
|
156
|
+
expected_len = total_minutes // model.interval_minutes + 1
|
|
157
|
+
expected_shape = (batch[key].shape[0], expected_len)
|
|
158
|
+
actual_shape = tuple(batch[key].shape)
|
|
159
|
+
if actual_shape != expected_shape:
|
|
162
160
|
raise ValueError(
|
|
163
|
-
f"
|
|
161
|
+
f"Generation data shape mismatch: expected {expected_shape}, got {actual_shape}"
|
|
164
162
|
)
|
|
165
163
|
|
|
166
164
|
logger.info("Batch shape validation successful!")
|
|
@@ -2,7 +2,7 @@ pvnet/__init__.py,sha256=TAZm88TJ5ieL1XjEyRg1LciIGuSScEucdAruQLfM92I,25
|
|
|
2
2
|
pvnet/datamodule.py,sha256=wc1RQfFhgW9Hxyw7vrpFERhOd2FmjDsO1x49J2erOYk,5750
|
|
3
3
|
pvnet/load_model.py,sha256=P1QODX_mJRnKZ_kIll9BlOjK_A1W4YM3QG-mZd-2Mcc,3852
|
|
4
4
|
pvnet/optimizers.py,sha256=DZ74KcFQV226zwu7-qAzofTMTYeIyScox4Kqbq30WWY,6440
|
|
5
|
-
pvnet/utils.py,sha256=
|
|
5
|
+
pvnet/utils.py,sha256=aVcalRAUO7TIa6AepRGmt0zPx9e1h2Xed34uCF_yg50,5887
|
|
6
6
|
pvnet/models/__init__.py,sha256=owzZ9xkD0DRTT51mT2Dx_p96oJjwDz57xo_MaMIEosk,145
|
|
7
7
|
pvnet/models/base_model.py,sha256=V-vBqtzZc_c8Ho5hVo_ikq2wzZ7hsAIM7I4vhzGDfNc,16051
|
|
8
8
|
pvnet/models/ensemble.py,sha256=USpNQ0O5eiffapLPE9T6gR-uK9f_3E4pX3DK7Lmkn2U,2228
|
|
@@ -22,8 +22,8 @@ pvnet/training/__init__.py,sha256=FKxmPZ59Vuj5_mXomN4saJ3En5M-aDMxSs6OttTQOcg,49
|
|
|
22
22
|
pvnet/training/lightning_module.py,sha256=hmvne9DQauWpG61sRK-t8MTZRVwdywaEFCs0VFVRuMs,13522
|
|
23
23
|
pvnet/training/plots.py,sha256=7JtjA9zIotuoKZ2l0fbS-FZDB48TcIk_-XLA2EWVMv4,2448
|
|
24
24
|
pvnet/training/train.py,sha256=Sry2wYgggUmtIB-k_umFts7xMr2roEL76NCu9ySbLUY,4107
|
|
25
|
-
pvnet-5.3.
|
|
26
|
-
pvnet-5.3.
|
|
27
|
-
pvnet-5.3.
|
|
28
|
-
pvnet-5.3.
|
|
29
|
-
pvnet-5.3.
|
|
25
|
+
pvnet-5.3.6.dist-info/licenses/LICENSE,sha256=tKUnlSmcLBWMJWkHx3UjZGdrjs9LidGwLo0jsBUBAwU,1077
|
|
26
|
+
pvnet-5.3.6.dist-info/METADATA,sha256=emx0MAvTIzqiocttPDRoQp-7QTScaKD5ANzC95wWkKo,16479
|
|
27
|
+
pvnet-5.3.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
28
|
+
pvnet-5.3.6.dist-info/top_level.txt,sha256=4mg6WjeW05SR7pg3-Q4JRE2yAoutHYpspOsiUzYVNv0,6
|
|
29
|
+
pvnet-5.3.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|