Autocti

Latest version: v2024.5.16.0

Safety actively analyzes 630223 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

2024.5.16.0

This release corresponds to the Journal of Open Source Software (JOSS) publication of **PyAutoCTI**.

**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.

2023.10.23.3

- Support for Python 3.11 by updating requirement on core libraries (e.g. `numpy`, `scipy`, `scikit-learn`).
- Remove use of `np,ma` module which is not supported by Python3.11 libraries.
- Fix issues with sqlite database following switch from `.pickle` outputs to `.json` / `.fits` / `.csv`.
- Database use of `Samples` object much more efficient.
- Methods to output classes to hard-disk (e.g. `output_to_json`, `from_json`, `to_dict`) are now all handled and called from `autoconf`.
- Fix bug where `nautilus` parallel fits sometimes crashed.
- Fix bug where `nautilus` single CPU fits did not work.

2023.9.18.4

This release implements two major changes to **PyAutoCTI**:

**Nautilus:**

For the past ~3 years, model fitting has used the nested sampling algorithm Dynesty.

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

Extensive testing of modeling with Nautilus has revealed that it:

- Speeds up the fitting of simple models by ~x2 - x3.
- Speeds up the fitting of complex models by ~x3 - x5+.
- Is more robust and reliable (e.g less likely to infer a local maxima, can fit more complex lens models).
- Controlled predominantly by just one parameter `n_live`, so is simpler to use than `dynesty`.
- Parallelization using Python `multiprocessing` is more efficient than `dynesty` and now supports proper error handling.

`Nautilus` is therefore now the default modeler, with all workspace examples updated accordingly.

NOTE: `Nautilus` does not currently support on-the-fly output and to get the results of a lens model mid-fit a user can instead cancel the run (e.g. via Ctrl + C) and restart it, where the maximum likelihood model will be output.

**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 **PyAutoCTI**:

![image](https://github.com/Jammy2211/PyAutoLens/assets/23455639/ffd454dc-47e1-42fb-8e2a-fa807c221247)

Here is an example of the `search.json` file:

![image](https://github.com/Jammy2211/PyAutoLens/assets/23455639/96015619-22fc-47a9-af3f-c050a7d5e267)

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

All workspace documentation has been updated accordingly.

**Other:**

- Update certain requirements (e.g. PyYAML) to mitigate installation issues (https://github.com/rhayes777/PyAutoConf/pull/41).
- Lots of quality-of-life improvements thoughout the code bases.

2023.7.5.2

Bug fixes for new MacOS parallelization.

No new features.

2023.6.12.5

- Database support now mature:

https://github.com/Jammy2211/PyAutoCTI/pull/47
https://github.com/Jammy2211/autocti_workspace/tree/main/scripts/dataset_1d/advanced/database

- Significant improvements to visualization:

https://github.com/Jammy2211/PyAutoCTI/pull/45
https://github.com/Jammy2211/PyAutoCTI/pull/46
https://github.com/Jammy2211/PyAutoCTI/pull/42
https://github.com/Jammy2211/PyAutoCTI/pull/40

- Charge noise functionality now in charge injection imaging:
-
https://github.com/Jammy2211/PyAutoCTI/pull/43

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.