Skip to main content

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.

  1. Install attribution_quality requirements
    1. Either install torch or build from source
    2. mamba install -c conda-forge numpy scikit-image tqdm
  2. Install attribution_quality
    1. METHOD 1 (recommended)
      1. pip install attribution_quality --no-deps
    2. METHOD 2 (for local development)
      1. git clone git@github.com:Mullans/AttributionQuality.git
      2. cd AttributionQuality
      3. pip install -e . --no-deps
  3. (Optional) Install SimpleITK and matplotlib for the example notebooks and for some evaluation metrics
    1. 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.

  1. Install nnUNet requirements
    1. mamba install -c conda-forge -c simpleitk dicom2nifti medpy scikit-learn simpleitk pandas nibabel matplotlib
    2. pip install batchgenerators
  2. Install nnUNet v1
    1. git clone -b nnunetv1 --single-branch git@github.com:MIC-DKFZ/nnUNet.git
    2. cd nnunet
    3. pip install -e . --no-deps
  3. Finish setting up nnUNet
    1. Set nnUNet_raw_data_base, nnUNet_preprocessed, and RESULTS_FOLDER environment variables

Attribution Quality Example Notebooks

  1. examples/SingleLayer_Example.ipynb - Example Jupyter notebook showing how to use this package to generate explanations for a single layer of a segmentation model
  2. examples/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

This version

1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

attribution_quality-1.0.tar.gz (314.3 kB view details)

Uploaded Source

Built Distribution

attribution_quality-1.0-py3-none-any.whl (29.0 kB view details)

Uploaded Python 3

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

Hashes for attribution_quality-1.0.tar.gz
Algorithm Hash digest
SHA256 8d0bab7ac383c5509079ddee245244d6374e14a534327d2dc1b53d0209911d61
MD5 357992ff5e1604b8836d2892e5591514
BLAKE2b-256 e3a412aecebb5c7992f88aa99421332bafd76cd3414cfc9a74fc961e5143851d

See more details on using hashes here.

File details

Details for the file attribution_quality-1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for attribution_quality-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f3f38eeb4048380cad328f838418976f8c0c1402e9c8eabf0ab94c2b1015a7cf
MD5 1753a33d9d6e8851ef06cb86fcd9686e
BLAKE2b-256 29f809f52e843a1c8c001dc158d809700f052bdb40322ad33596def9f2ecb792

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page