Add input validation for model features shape #191
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request
Description
This PR addresses issue #190 by adding explicit input validation to the forward methods of GraphWeatherForecaster, GraphWeatherAssimilator, and AuroraModel.
The models now strictly enforce that input feature tensors must be 3-dimensional with the shape
[batch, nodes, features]. Previously, invalid input shapes (e.g., missing the feature dimension) could pass through to internal layers, causing cryptic runtime errors deep in the call stack. This change ensures that such errors are caught immediately at the API boundary with a clear and informativeValueError.Fixes #190
How Has This Been Tested?
I have added a new test file tests/test_input_validation.py which contains unit tests for each of the modified models.
To reproduce/verify:
pytest tests/test_input_validation.pyThe tests verify that:
Passing an input tensor with shape
[batch, nodes](2D) raises aValueErrorwith the expected message.Passing an input tensor with shape
[batch, nodes, features](3D) does not raise a shape-related error.Yes
If your changes affect data processing, have you plotted any changes? i.e. have you done a quick sanity check?
Checklist: