Skip to content

Releases: understandable-machine-intelligence-lab/Quantus

v0.3.5

05 Apr 09:47
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.3.4...v0.3.5

v0.3.4

22 Feb 14:40
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.3.3...v0.3.4

v0.3.3

14 Feb 12:04
673b60b
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.3.2...v0.3.3

v0.3.2

25 Jan 10:50
be597fa
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.3.1...v0.3.2

v0.3.1

21 Nov 18:13
Compare
Choose a tag to compare

What's Changed (smaller PRs)

Full Changelog: v0.3.0...v0.3.1

v0.3.0

21 Oct 15:28
Compare
Choose a tag to compare

What's Changed

Bigger PRs

  • Refactor custom_preprocess() for more robustness by @dkrako, reviewed by @annahedstroem, @leanderweber in #167
    • Make the implementation custom_preprocess() more flexible: instead of passing the complete tuple with model, x_batch, y_batch, a_batch, s_batch, .. we instead pass a dictionary with the variable names as keys.
  • Batched evaluation by @dkrako, reviewed by @annahedstroem, @leanderweber in #168
    • This PR implements the classes BatchedMetric and BatchedPerturbationMetric
    • This is a rewrite of this PR: #87
    • It solves the following issue: #80
    • This will speed up a lot of metrics.
    • Not all metrics in Quantus are yet updated with BatchedPerturbationMetric. The efforts of deploying this new construct with more metrics for efficiency gains will continue.
  • Change normalisation default, fix bug in normalise_by_negative, adapt citations, absolute imports by @leanderweber, reviewed by @annahedstroem, @dkrako in #166
    • Make some Updates to the readthedocs
    • Update and Unify Citations in all Metrics
    • Update, unify, and sort all imports
    • Change all relative imports to absolute
    • Rethink star imports. Specifically, restructure helpers to distinguish internal functions and functions that should be user-accessible.
    • Change the normalisation_func default to normalise_by_max instead of normalise_by_negative due to the latter treating pos/neg values differently
    • Target some bugs within the normalisation functions and their application
    • Merge installation options rework (see PR #172)
    • Updated and cleaned-up README.md file
  • Mypy: fix errors fix by @dilyabareeva, reviewed by @annahedstroem in #171
    • An in-depth look at the typing, branched from mypy-static-type-checker
    • Fix errors or reject with reason

Smaller PRs

Full Changelog: v0.2.2...v0.3.0

v0.2.2

08 Oct 18:27
Compare
Choose a tag to compare

What's Changed 🚀

Bigger PRs:

  • Fixes, license, readthedocs and docstrings by @annahedstroem in #156
    • Removed coverage from requirements.txt
    • Finished all docstrings accordingly to numpydoc
    • Included API documentation
    • Configured readthedocs.org
    • Added license stubs to all src files
    • Added codecov badge
    • Added assumptions on data applicability
    • Removed * imports
  • Fixes and enhancements tutorials, other fixes to tests, .gitignore and README.md by @annahedstroem in #164
    • Added ImageNet data as examples
    • Tutorials clean-up and added data to assets
    • Fixed all tutorials, removed colab dependency and simplified install
    • Updated .gitignore
    • Replaced an assert with a warning
    • Moved PR template
    • Cleaned up assets folder
    • Removed term_color
    • Updated docs, post-tutorial API docs fixes

Smaller PRs:

Full Changelog: v0.2.1...v0.2.2

v0.2.1

26 Sep 14:02
aeff48f
Compare
Choose a tag to compare

v0.2.0

25 Sep 15:51
6e9c973
Compare
Choose a tag to compare

What's Changed 🚀

For more transparent kwargs-passing and error handling, we have updated the API of Quantus! The main changes are the following:

  • Add function-specific keyword-arguments to metric functions. by @dkrako in #124

From implicit to explicit argument passing. To mitigate the risk of user typos and other undefined behaviours, the new version 0.2.0 forces explicit argument passing of all metric initalisations and calls. Instead of passing all evaluation parameters in one single kwargs list, e.g.,

kwargs = {"n_perturb_samples": 10, "abs": False, "normalise": True, "explain_func": quantus.explain, method: "Saliency"}}
metric = Infidelity(**kwargs)
metric(model=model, x_batch=x, y_batch=y, a_batch=a, s_batch=s, **kwargs)

which could for example result in typos being overlooked, we now separate the parameters into different dictionaries such as normalise_func_kwargs, explain_func_kwargs, model_predict_kwargs. With the new API, the same call looks like this:

metric = Infidelity(n_perturb_samples=10, abs=False, normalise=True)
metric(model=model, x_batch=x, y_batch=y, a_batch=a, s_batch=s, explain_func=quantus.explain, explain_func_kwargs={"method": "Saliency"})

In this way, we assert better control over the parameters. If an unexpected argument is passed, an error will now be thrown.

Extended the base.Metric class. Many metrics share the same logic when it comes to general attributes and pre-processing. To remove duplicate code, we extended the base class, which now includes some key methods general_preprocessing, custom_preprocessing, evaluate_instance, custom_postprocessing all which could be used for various Metric implementations.

Additional functionality in helpers and increased general code-quality. We have shortended and rewritten scripts where necessary for better code readability. Added new functions and refactored existing ones to adhere to PEP-8.

If these API changes are not suitable for your project's needs, please install a previous release version such as v0.1.6 via:

pip install quantus==0.1.6

Also, a minor PR was incorporated:

Full Changelog: v0.1.6...v0.2.0

v0.1.6

15 Sep 15:21
7cfe6f2
Compare
Choose a tag to compare

v0.1.6 - A new release 💥

What's Changed

New Contributors

Full Changelog: v0.1.5...v0.1.6