Skip to content

Releases: Pale-Blue-Dot-97/Minerva

Minerva 0.23.0

17 Apr 16:55
b651d3d
Compare
Choose a tag to compare
Minerva 0.23.0 Pre-release
Pre-release

minerva 0.23.0-beta

Updates

  • Closes #152
  • NEW: Added mask_to_ohe to convert mask tensors to one-hot-encoding (OHE).
  • NEW: Added autoencoder_io so that input and targets can be made the same for autoencoder experiments.
  • Added new tests (particularly for trainer) to close coverage gaps.
  • Added support for Python 3.11
  • Bumped dependency versions to the latest version.
  • Fixed bug in STGLogger for scene classifiers due to incorrect size of the logs.
  • Fixed the UndefinedMetricWarning in ROC plotting.

What's Changed

Full Changelog: v0.22.0-beta...v0.23.0-beta

Minerva v0.22.0-beta

28 Mar 13:35
Compare
Choose a tag to compare
Minerva v0.22.0-beta Pre-release
Pre-release
                                 *       *    __  ________   ____________ _    _____
                             *        *      /  |/  /  _/ | / / ____/ __ \ |  / /   |  *           *
                                 *          / /|_/ // //  |/ / __/ / /_/ / | / / /| |     *
                             *       *     / /  / // // /|  / /___/ _, _/| |/ / ___ |               *
                              *           /_/  /_/___/_/ |_/_____/_/ |_| |___/_/  |_|     *   *
                                         THE REMOTE SENSING MACHINE LEARNING FRAMEWORK
                                         ==============> v0.22.0-beta <===============

This release focusses on adding support for third-party models to minerva. There are also updates to the documentation, some minor bug fixes and new transforms.

What's Changed

Full Changelog: v0.21.0-beta...v0.22.0-beta

Minerva v0.21.0-beta

06 Mar 15:54
b3d8eb0
Compare
Choose a tag to compare
Minerva v0.21.0-beta Pre-release
Pre-release

minerva v0.21.0-beta

                                 *       *    __  ________   ____________ _    _____
                             *        *      /  |/  /  _/ | / / ____/ __ \ |  / /   |  *           *
                                 *          / /|_/ // //  |/ / __/ / /_/ / | / / /| |     *
                             *       *     / /  / // // /|  / /___/ _, _/| |/ / ___ |               *
                              *           /_/  /_/___/_/ |_/_____/_/ |_| |___/_/  |_|     *   *
                                         THE REMOTE SENSING MACHINE LEARNING FRAMEWORK
                                         ==============> v0.21.0-beta <===============

This version mainly focuses on improving the user experience through a major shake-up in the structure of the experiment configs and major improvements to the documentation.

Updates

  • Closes #146
  • Closes #123
  • Moved most of the more important hyperparameter options to the top-level of the config.
  • Added most of these options to the CLI.
  • Added extensive comments to the example configs to structure and explain the configs.
  • Added a new ASCII banner art for minerva. It used as a header for the configs and as a welcome sign in MinervaExp.py.
  • Added some limited argcomplete functionality with the use of choices option in CLI arguments that have restricted possible parameters.
  • Added intersphinx functionality to the sphinx docs. This allows for the linking to thrid-party documentation.
  • Updated example_config.rst guide to new standard.
  • Updated and corrected all docstrings across minerva so that sphinx references are valid.
  • Improved the README and added a modified version to the sphinx docs.

Full Changelog: v0.20.0-beta...v0.21.0-beta

Minerva v0.20.0

23 Feb 00:24
57312a5
Compare
Choose a tag to compare
Minerva v0.20.0 Pre-release
Pre-release

Update that mainly focuses on updating dependencies and hooks, reducing boilerplate and closing the distributed tests issue by removing that functionality from the pytest coverage.

What's Changed

Updates

  • Closes #143
  • Reduced the boilerplate nature of many of the model classes which are variants of one another.
  • Added new _ResNetX class for ResNet variant classes to inherit from.
  • As #99 cannot be resolved, distributed functionality has had pragma: no cover comments added to remove it from pytest coverage.
  • Added missing max_r parameter in the sampler definitions in example_GeoCLR_config.yml.
  • Added new plot and plot_random_sample methods to PairedDataset. These emulate the plot methods included in all dataset classes in torchgeo and are based on those used in the NAIP dataset.
  • Updated existing pre-commit hooks to latest versions.
  • Added some new pre-commit hooks.
  • Resolved a security vulnerability from dependencies by using a new pre-release version of tensorflow.
  • Added is_notebook to utils.py to check whether the code is being executed from a Juypter kernel.
  • Added Visualise_Siamese_Pair.ipynb example notebook that visualises both patches in a pair for Siamese learning. Placed in a new notebooks directory.
  • Minor bug fixes and improvements to some exception handling.
  • Some improvements and updates to the README and documentation.

Full Changelog: v0.19.2-beta...v0.20.0-beta

`minerva` `v0.19.2`

17 Feb 14:22
Compare
Choose a tag to compare
`minerva` `v0.19.2` Pre-release
Pre-release

minerva v0.19.2-beta

This small update focuses on address some security vulnerabilities from dependencies and upgrading other dependencies as far as possible.
There are also some minor improvements to tests, package layout and type-hinting.

Updates

  • Moved requirements files into requirements directory.
  • Added perplexity argument to utils.tsne_cluster to account for changes in scikit-learn that require perplexity < n_samples.
  • Minor flake8 fixes.
  • Pinned Werkzeug >= 2.2.3 to avoid a highlighted security vulnerability.
  • Bumped various dependencies up to the latest compatible versions.
  • Removed some redundant dependencies.
  • Added some missing dependencies to setup.cfg for minerva.
  • Fixed a potential bug in results_dir fixture if the path did not exist when attempting to delete it and its contents.
  • Added some additional pragma: no cover comments to exclude some areas of the code, namely the SLURM environment variables in runner.py as it seems unlikely these can ever be reliably tested.

Minerva Beta 0.19 Release

16 Feb 15:37
Compare
Choose a tag to compare
Pre-release

minerva v0.19.0-beta

Welcome to the first beta version of minerva!

This latest update of minerva focuses on adding KNN validation to the Trainer for SSL models to use, along with other updates, improvements and bug fixes:

Updates

  • Closes #140
  • Adds weighted_knn_validation to Trainer to validate SSL models using k-nearest neighbours classification.
  • Experiments with model_type == "ssl" or "siamese will now automatically use weighted_knn_validation rather than the standard epoch for validation epochs.
  • Added val_freq to the config and CLI for setting the frequency at which validation epochs are run for every training epoch. Applies to SSL and Siamese models.
  • Restructured siamese.py to use a new abstract MinervaSiamese class. This is to allow the forward methods in these models to be built from forward_pair (forward pass of both heads of the network) and forward_single (forward pass of a single head of the network). This was required for the KNN.
  • sample_pairs now only applies in training in general.
  • Validation and test datasets now ignore sample_pairs when constructed so they are suitable for the KNN. This seems a fair adjustment as validation or testing of a Siamese model is very likely to only require single-headed operation for downstream tasks.
  • Configs for SSL and Siamese models should be adjusted so that appropriate datasets and samplers are defined (i.e include labels and don't use paired samplers). See example_GeoCLR_config.yml for an example of this.
  • Added KNNLogger to logger.py as a special logger used in weighted_knn_validation. The usual SSLMetrics metric logger can however still be used with the new functionality.

Improvements

  • Results from tests will now be automatically cleaned up.
  • Tests have been extended to cover new functionality and most of Trainer's possible operations.
  • Dependencies updated.
  • Added some extra pragma: no cover on a few areas of code that are impractical to cover in tests.
  • Added ToDefaultConfDir context manager to switch to the default config directory in tests.
  • Added set_seeds pytest.fixture so seeds are automatically set using utils.set_seeds across the whole test session.

Bug Fixes

  • Fixed some broken test fixture paths.
  • Fixed broken _static path for sphinx docs.
  • Added missing sphinx docs for models modules and config_load.py.

What's Changed

New Contributors

Full Changelog: https://github.com/Pale-Blue-Dot-97/Minerva/commits/0.19.0-beta