Releases: understandable-machine-intelligence-lab/Quantus
v0.3.5
What's Changed
- #195 fix autodoc for special members by @aaarrti in #239
- #219 fix unstable tests by @aaarrti in #241
- Added implementation and tests for return_aggregate=True for BatchedMetric by @annahedstroem in #244
- Action fixes by @aaarrti in #246
- Fix bugs and provide flexibility for Softmax argument by @dilyabareeva in #230
- Tutorial addition and resolving fixture by @annahedstroem in #245
Full Changelog: v0.3.4...v0.3.5
v0.3.4
What's Changed
- Add tests for tabular (2D) data by @aaarrti in #218
- Fixed TF explain bug by @annahedstroem in #231
Full Changelog: v0.3.3...v0.3.4
v0.3.3
What's Changed
- Updated contact details by @annahedstroem in #226
- Issue 199 by @dilyabareeva in #214
- Fix minor misleading error message in Robustness metrics by @dilyabareeva in #227
- Input Invariance Metric (issue 169) by @dilyabareeva in #225
- exposed constants to user by @annahedstroem in #228
Full Changelog: v0.3.2...v0.3.3
v0.3.2
What's Changed
- Added first draft of normalise_by_average_second_moment_estimate by @annahedstroem in #197
- Use mini batch for tests by @aaarrti in #198
- TF model refactorings by @aaarrti in #209
- Feature/relative stability metric by @aaarrti in #210
- Issue 122 by @dilyabareeva in #205
- add new methods to captum and tf-explain funcs by @dilyabareeva in #206
- Fixing issue with blur_at_indices (Issue #200) by @leanderweber in #208
- Fix IROF metric - perturbation accumulation and counting the segments by @p-wojciechowski in #221
New Contributors
- @p-wojciechowski made their first contribution in #221
Full Changelog: v0.3.1...v0.3.2
v0.3.1
What's Changed (smaller PRs)
- Improve error message by @vedal in #185
- Default value of explain_func_kwargs cannot be unpacked. by @vedal in #184
- Added AUC calculation to Pixel-Flipping by @annahedstroem in #189
- Docs by @annahedstroem in #190
- #173 Fix GitHub heatmaps by @aaarrti in #188
- Validate predictions change robustness by @aaarrti in #183
- Citation fixes by @annahedstroem in #192
- Update requirements_test.txt by @annahedstroem in #193
- Tutorial fixes by @dilyabareeva in #194
Full Changelog: v0.3.0...v0.3.1
v0.3.0
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 withmodel, x_batch, y_batch, a_batch, s_batch, ..
we instead pass a dictionary with the variable names as keys.
- Make the implementation
- 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
- Installation option refactoring to be more concise by @leanderweber, reviewed by @annahedstroem in #172
- Refactored installation options, e.g., "extras" removed, instead singular XAI libraries are targetable.
- Updated Quantus package dependencies
- Bugfixes to Installation and Tutorials by @leanderweber, reviewed by @annahedstroem in #176
- Tabular data minimal example by @dilyabareeva, reviewed by @annahedstroem in #175
- Jupyter notebook/ tutorial based on Titanic data, showing with a minimal example how to use Quantus
- Add time series tutorial by @dkrako, reviewed by @annahedstroem in #177
- Remove coverage>=6.2 by @annahedstroem in #179
Full Changelog: v0.2.2...v0.3.0
v0.2.2
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:
- 146 treatment of slices in baseline replacement by indices is wrong by @leanderweber in #148
- Require
numpy>=1.19.5
for correct version solving by @vedal in #151 - Code formatting and documentation by @dilyabareeva in #154
- bug: tensorflow is required, even if not used by @vedal in #158
- Create pull_request_template.md by @annahedstroem in #161
- Create issue templates by @annahedstroem in #160
- CONTRIBUTING.md by @dilyabareeva in #157
- Fixing indentation of LLE metric by @annahedstroem in #162
- Create python-publish.yml by @annahedstroem in #163
Full Changelog: v0.2.1...v0.2.2
v0.2.1
v0.2.0
What's Changed 🚀
For more transparent kwargs-passing and error handling, we have updated the API of Quantus! The main changes are the following:
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
v0.1.6 - A new release 💥
What's Changed
- Fixed a bug with patch creation and with .index() on np arrays by @leanderweber in #140
- Do not show zennit warning, if captum or tf-explain is used by @aaarrti in #141
- Create CITATION
- Fixed bug uniform sampling (str) option in get_baseline_dict
New Contributors
Full Changelog: v0.1.5...v0.1.6