KernelWeighted Contribution implementation for visual understanding of deep learning segmentation
Project description
Attribution Quality
This package was designed to both generate explanations for deep learning segmentation models as well as to provide comprehensive metrics for evaluating new explanation methods.
We have included our novel explanation method, Kernel-Weighted Contribution, as well as a number of other XAI methods adapted for use with segmentation models. With the additional use of our explanation ground-truth dataset, we can evaluate the quality of these methods and provide a comprehensive comparison of their performance.
Startup Instructions
Note - We use mamba to install packages, but you can use conda in the same way if you prefer.
- Install
attribution_quality
requirements- Either install torch or build from source
mamba install -c conda-forge numpy scikit-image tqdm
- Install
attribution_quality
- METHOD 1 (recommended)
pip install attribution_quality --no-deps
- METHOD 2 (for local development)
git clone git@github.com:Mullans/AttributionQuality.git
cd AttributionQuality
pip install -e . --no-deps
- METHOD 1 (recommended)
- (Optional) Install SimpleITK and matplotlib for the example notebooks and for some evaluation metrics
mamba install -c simpleitk -c conda-forge simpleitk matplotlib
nnUNet Setup Instructions (optional)
Note: We used nnUNet for the experiments described in our paper. You can skip this section unless you want to reproduce our results.
- Install nnUNet requirements
mamba install -c conda-forge -c simpleitk dicom2nifti medpy scikit-learn simpleitk pandas nibabel matplotlib
pip install batchgenerators
- Install nnUNet v1
git clone -b nnunetv1 --single-branch git@github.com:MIC-DKFZ/nnUNet.git
cd nnunet
pip install -e . --no-deps
- Finish setting up nnUNet
- Set
nnUNet_raw_data_base
,nnUNet_preprocessed
, andRESULTS_FOLDER
environment variables
- Set
Attribution Quality Example Notebooks
examples/SingleLayer_Example.ipynb
- Example Jupyter notebook showing how to use this package to generate explanations for a single layer of a segmentation modelexamples/Full_KWC_Example.ipynb
- Example Jupyter notebook showing how to run Kernel-Weighted Contribution on all layers of a segmentation model and evaluate the resulting attribution map
Currently included methods of explanation:
Kernel-Weighted Contribution | ScoreCAM | |
GradCAM | GradCAM++ | LayerCAM |
XGradCAM | Element-wise GradCAM | HiResCAM |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file attribution_quality-1.0.tar.gz
.
File metadata
- Download URL: attribution_quality-1.0.tar.gz
- Upload date:
- Size: 314.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d0bab7ac383c5509079ddee245244d6374e14a534327d2dc1b53d0209911d61 |
|
MD5 | 357992ff5e1604b8836d2892e5591514 |
|
BLAKE2b-256 | e3a412aecebb5c7992f88aa99421332bafd76cd3414cfc9a74fc961e5143851d |
File details
Details for the file attribution_quality-1.0-py3-none-any.whl
.
File metadata
- Download URL: attribution_quality-1.0-py3-none-any.whl
- Upload date:
- Size: 29.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3f38eeb4048380cad328f838418976f8c0c1402e9c8eabf0ab94c2b1015a7cf |
|
MD5 | 1753a33d9d6e8851ef06cb86fcd9686e |
|
BLAKE2b-256 | 29f809f52e843a1c8c001dc158d809700f052bdb40322ad33596def9f2ecb792 |