Releases: CosmoStat/wf-psf
Patch Release 2.0.1.
This Patch Release includes minor bug-fixes to Release 2.0.0.
Bug Fixes
Broken links for example configuration files in the repository were corrected.
Corrected the bug where the incorrect parameter was passed for setting the number of epochs for training the parametric model parameters.
Provided an environment.yml
file containing the recommended list of packages including pinned versions of TensorFlow and Keras required for this release of WaveDiff. We plan in the near future to update WaveDiff to more recent versions of TensorFlow
.
Refactored WF-PSF
WF-PSF v2.0.0
Release 2.0.0 of WF-PSF is based on commit 146725f with 13 issues addressing user interface, software architecture design, code restructuring, reproducibility, documentation, continuous integration, and package dependency handling.
Major New Features:
Dependency Handling
A change was made to use pyproject.toml
for better specifications of build dependencies.
Modular Design
A more logical modular design and package structure was applied to encapsulate the various software components. Code was restructured and moved into a package module. This redesign improves both the readability and maintainability of the software. It also allows for a cleaner implementation of a testing campaign.
Packages added
- data reads and pre-processes the training and test data sets
- metrics contains the modules for computing a set of metrics of a trained PSF model or checkpoint weights
- plotting produces plots of the metrics package outputs for the training and test data sets
- psf_models stores the modules that define the different types of PSF models
- sims is used to generated simulated PSFs
- tests contains a set of unit tests for certain package modules
- training launches the Tensor Flow routines to train the parameters of a PSF model
- utils handles the various pipeline configurations, IO, and miscellaneous utility functions
New User Interface
Input parameters for specific configurations, i.e. input training and test data sets, training tasks, PSF model, metrics computation, etc are defined in corresponding configuration files using YAML. Examples can be seen in wf-psf/config.
New Entry Point
run is the new entry point to WaveDiff and replaces the now deprecated script_utils.py
.
Configuration Handling
configs_handler is the middleware that uses abstract factory methods to handle the various configuration settings of WaveDiff and is a replacement for script_utils.py
.
Random Seed Handling
A new configuration parameter random_seed
has been added as part of the set of training configuration parameters. This allows the user to fix the seed initialisation for Tensor Flow to reproduce the exact training results for a specific training configuration.
Continuous Integration
Continuous integration has been set up with .github/workflows using ci.yml
Documentation
API documentation generated using Sphinx is now provided via continuous deployment with .github/workflows using cd.yml
Deprecations
Removal of the previous entry pointscript_utils.py
with specific components moved to train.py
, metrics_interface.py
, and plots_interface.py
and re-engineered in run.py
.
Removal of unused modules info.py
, method_comp_utils.py
, requirements.txt
, sandbox.py
, setup.py
, tf_alt_psf_models.py
and tf_mccd_psf_field.py
. For the latter case, the MCCD PSF model was removed to reduce the scope of the refactoring and may be added back in a future release.
Known Issues
Too few unit tests. The test coverage of WaveDiff is lacking and will be improved in the next release.
Testing and Quality Assurance
Validation tests at a fixed random seed were carried out for WaveDiff, specifying different combinations of the pipeline tasks, i.e. train + metrics
and metrics
-only runs. The metrics results for each configuration combination of WaveDiff were compared with the results ran from the version of WaveDiff at the commit state 899a6e3 and found to agree at machine-level precision.
1.2.0
- State of the code used to generate the results of both papers.
- Code, scripts, and notebooks used to regenerate the paper's plots and results are present.
A big code cleanup is missing. As well as some documentation.
1.1.0
Many modifications, although the core PSF model remains the same.
- Internal Zernike generator.
- Generalisation of layers to handle better monochromatic and SR tasks.
- New regularisation techniques.
- Scripts for wf_psf testing, evaluation and plotting. Using CLI.
- Added all the directory with method comparisons in terms of pixel error, and Super Resolution pixel error and shape errors. Methods: PSFEx, RCA and MCCD.
v1.0.0
First release. In order to freeze the code version that was used to generate the conference article results.
This release includes:
- Core TensorFlow code of the model.
- Complementary code to evaluate metrics including Euclid requirements.
- Numpy simulation tool to generate datasets and validate the core model.
- Some simulated datasets.
- Many notebooks to explore results and run tests.