Recent Releases of PyAutoFit

PyAutoFit - May 2025

  • Remove Analysis summing API, replacing all dataset combinations with AnalysisFactor and FactorGraphModel API used for graphical modeling:

https://github.com/Jammy2211/autofitworkspace/blob/main/notebooks/cookbooks/multipledatasets.ipynb

  • Results workflow API, which generates .csv, .png and .fits files of large libraries of results for quick and efficient inspection:

https://github.com/Jammy2211/autolens_workspace/tree/main/notebooks/results/workflow

  • Latent variable API bug fixes and now used in some test example scripts.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 8 months ago

PyAutoFit - January 2025

This update is mostly bug fixes and small improvements, with no major new functionality added.

What's Changed

  • Feature/enviroment warning by @Jammy2211 in https://github.com/rhayes777/PyAutoFit/pull/1077
  • cache hdus to avoid object deletion causing files to be closed by @rhayes777 in https://github.com/rhayes777/PyAutoFit/pull/1081
  • feature/constant comparison by @rhayes777 in https://github.com/rhayes777/PyAutoFit/pull/1080
  • Remove database test path by @Jammy2211 in https://github.com/rhayes777/PyAutoFit/pull/1083
  • analysissummedlatent by @Jammy2211 in https://github.com/rhayes777/PyAutoFit/pull/1084
  • monkey patch abstract_search.gc during testing to prevent expensive calls to gc.collect() by @rhayes777 in https://github.com/rhayes777/PyAutoFit/pull/1088
  • feature/aggregate summary by @rhayes777 in https://github.com/rhayes777/PyAutoFit/pull/1089

Full Changelog: https://github.com/rhayes777/PyAutoFit/compare/2024.11.13.2...2025.1.18.7

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 11 months ago

PyAutoFit - November 2024 update

Garbage collection and other things to improve memory use.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 about 1 year ago

PyAutoFit - November 2024

Minor release with stability updates and one main feature.

  • Sensitivity Mapping improvements.

  • Start point for MCMC.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 about 1 year ago

PyAutoFit - September 2024

This release updates all projects to support Python 3.12, with support tested for Python 3.9 - 3.12 and 3.11 regarded as most stable.

This includes many project dependency updates:

https://github.com/rhayes777/PyAutoFit/blob/main/requirements.txt https://github.com/rhayes777/PyAutoFit/blob/main/optional_requirements.txt

PyAutoFit:

https://github.com/rhayes777/PyAutoFit/pulls?q=is%3Apr+is%3Aclosed

  • Improvements to HowToFit lectures: https://github.com/rhayes777/PyAutoFit/pull/1022
  • Support for NumPy arrays in model composition and prior creation, for example creating an ndarray of input shape where each value is a free parameter in the seach: https://github.com/rhayes777/PyAutoFit/pull/1021
  • Name of optimize searches renamed to mle, for maximum likelihood estimator, with improvements to visualization: https://github.com/rhayes777/PyAutoFit/pull/1029
  • Improvement to sensitivity mapping functionality and results: https://github.com/rhayes777/PyAutoFit/pulls?q=is%3Apr+is%3Aclosed
  • More improvements to JAX Pytree interface, documentation still to come.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 over 1 year ago

PyAutoFit - May 2024

PyAutoFit:

  • Nautilus now outputs results on the fly: https://github.com/rhayes777/PyAutoFit/pull/961
  • Output latent samples of a model-fit, which are parameters derived from a model which may be marginalized over:

PR: https://github.com/rhayes777/PyAutoFit/pull/994 Example: https://github.com/Jammy2211/autofit_workspace/blob/release/notebooks/cookbooks/analysis.ipynb

  • model.info file displays complex models in a more concise and readable way: https://github.com/rhayes777/PyAutoFit/pull/1012
  • All samples with a weight below an input value are now removed from samples.csv to save hard disk space: https://github.com/rhayes777/PyAutoFit/pull/979
  • Documentation describing autofit scientific workflow: https://github.com/rhayes777/PyAutoFit/pull/1011
  • Refactor visualization into stand alone module: https://github.com/rhayes777/PyAutoFit/pull/995
  • Refactor how results are returned after a search: https://github.com/rhayes777/PyAutoFit/pull/989
  • Improved parallelism logging: https://github.com/rhayes777/PyAutoFit/pull/1009
  • Likelihood consistency check now performed internally: https://github.com/rhayes777/PyAutoFit/pull/987
  • Generation of initial search samples is now performed in parallel: https://github.com/rhayes777/PyAutoFit/pull/997
  • No longer store search_internal on hard-disk. simplifying source code internals: https://github.com/rhayes777/PyAutoFit/pull/938
  • Multiple small bug fixes and improvements to interface.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 over 1 year ago

PyAutoFit - January 2024 (2024.1.27.4)

  • Stability upgrades for change from .pickle to .json files.
  • JAX implementation improved, still in development.
  • Sensitivity mapping improvements.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 almost 2 years ago

PyAutoFit - October 2023 (2023.10.23.3)

  • Support for Python 3.11 by updating requirement on core libraries (e.g. numpy, scipy, scikit-learn).
  • Fix issues with sqlite database following switch from .pickle outputs to .json / .fits / .csv.
  • Database use of Samples object much more efficient.
  • Fix bug where nautilus parallel fits sometimes crashed.
  • Fix bug where nautilus single CPU fits did not work.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 about 2 years ago

PyAutoFit - September (v2023.9.18.4)

This release implements two major changes to PyAutoFit:

Results Output

Result metadata was previously output as .pickle files, which were not human readable and depended on project imports, hurting backwards compatibility.

All metadata is now output as human readable .json files and dataset as .fits files, making it a lot more straight forward for a user to interpret how data is stored internally within PyAutoFit:

image

Here is an example of the search.json file:

image

All internal functionality (e.g. the sqlite database) has been updated to use these files.

All workspace documentation has been updated accordingly.

Nautilus

Recently, a new nested sampler, Nautilus (https://nautilus-sampler.readthedocs.io/en/stable/), was released, which uses machine-learning based techniques to improve sampling.

This release implements this.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 over 2 years ago

PyAutoFit - July (2023.5.7.2)

Bug fixes for new MacOS parallelization.

No new features.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 over 2 years ago

PyAutoFit - June 2023 (2023.6.12.5)

  • Improvements to combined analyses (e.g. summed Analysis objects to fit multipole datasets), for example better output paths for visualization, options to visualize before a fit and making combined figures across analyses:

https://github.com/rhayes777/PyAutoFit/pull/715 https://github.com/rhayes777/PyAutoFit/pull/703 https://github.com/rhayes777/PyAutoFit/pull/701 https://github.com/rhayes777/PyAutoFit/pull/696

  • Database support for combined analyses:

https://github.com/rhayes777/PyAutoFit/pull/708

  • Sensitivity mapping visualization improvements:

https://github.com/rhayes777/PyAutoFit/pull/711

  • Improvements to graphical models:

https://github.com/rhayes777/PyAutoFit/pull/712 https://github.com/rhayes777/PyAutoFit/pull/709

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 over 2 years ago

PyAutoFit - March 2023 (2023.3.21.5)

This is the latest version, which primarily brings in stability upgrades and fixes bugs.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 almost 3 years ago

PyAutoFit - July 11 2022 Release

  • Starting point API for starting an MCMC fit with walkers in certain positions or maximum likelihood estimator fit with a start point implemented (https://github.com/rhayes777/PyAutoFit/pull/562). The example tutorial script for this feature is not written yet.

  • Dynamic delta scaling in expectation propagation fits, which prevent over confident result due to error underestimation (https://github.com/rhayes777/PyAutoFit/pull/559). The example tutorial script for this feature is not written yet.

  • Faster generation of models by sampling better within the prior limits (https://github.com/rhayes777/PyAutoFit/pull/558).

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 over 3 years ago

PyAutoFit -

  • Can make a parameter free across al combined analysis objects (docs / cookbook to be written):

analysis = sum(analysis_list) analysis = analysis.with_free_parameters( model.parameter, )

  • Model composition using relations (cookbook to be written):

``` x_list = [464, 658, 806]

m = af.UniformPrior(lowerlimit=-0.1, upperlimit=0.1) c = af.UniformPrior(lowerlimit=-10.0, upperlimit=10.0)

analysis_list = []

for x, imaging in zip(xlist, imaginglist):

y = af.Add(af.Multiply(x, m), c)

analysis_list.append(
    al.AnalysisImaging(dataset=imaging).with_model(
        model.replacing(
            {
                model.gaussian.x: gaussian.x,
            }
        )
    )
)

```

  • Tutorials for fitting a hierarchical model outside of EP.

https://github.com/Jammy2211/autofitworkspace/tree/release/notebooks/howtofit/chaptergraphical_models

  • Stability upgrades to EP framework.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 over 3 years ago

PyAutoFit - March 30 2022

  • Support for Python 3.9, 3.10.
  • LogGaussianPrior implemented.
  • Simultaneous fitting of hieraerchical models (E.g. not just via EP) supported.
  • Minor updates to graphical model API.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 over 3 years ago

PyAutoFit - March 2022

  • Sensitivity mapping now have options for customizing priors on the sensitivity component.
  • New API for aspects of graphical models.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 almost 4 years ago

PyAutoFit - Winter 2022 Release

This release primarily includes a lot of continued develop of the graphical modeling framework:

https://pyautofit.readthedocs.io/en/latest/features/graphical.html

There are now 4 fully functional tutorials on graphical models in the autofit_workspace, which include expectation propagation and hierarchical models:

https://github.com/Jammy2211/autofitworkspace/tree/release/notebooks/howtofit/chaptergraphical_models

The release contains a lot of small improvements and additional features to the database, search grid search and general model-fitting. These are documented throughout the autofit_workspace.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 almost 4 years ago

PyAutoFit - Summer Release

We have switched to a date-based numbering system, with a long-term to do an overnight build nightly.

  • Add scipy LBFGS as optimizer.
  • Fixed bugs where building of database via scrape method would not support all queries.
  • Database and Aggregator support for GridSearch objects and results.
  • Improvements to unique identifier including option to exclude certain values from being tracked.
  • Interal storage of mappings between priors and model now uses the string representation of the prior with an id, to ensure there is no ambuigity in matching,
  • Further development on graphical modeling framework, primarily refactoring of existing code.

Scientific Software - Peer-reviewed - Python
Published by Jammy2211 over 4 years ago

PyAutoFit - First release for Zenodo

Scientific Software - Peer-reviewed - Python
Published by rhayes777 almost 5 years ago