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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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