Saliency methods for TensorFlow
Project description
Saliency Methods
Introduction
This repository contains code for the following saliency techniques:
- XRAI* (paper)
- SmoothGrad* (paper)
- Vanilla Gradients (paper, paper)
- Guided Backpropogation (paper)
- Integrated Gradients (paper)
- Occlusion
- Grad-CAM (paper)
*Developed by PAIR.
This list is by no means comprehensive. We are accepting pull requests to add new methods!
Download
pip install saliency
or for the development version:
git clone https://github.com/pair-code/saliency
cd saliency
Usage
Each saliency mask class extends from the SaliencyMask
base class. This class
contains the following methods:
__init__(graph, session, y, x)
: Constructor of the SaliencyMask. This can modify the graph, or sometimes create a new graph. Often this will add nodes to the graph, so this shouldn't be called continuously.y
is the output tensor to compute saliency masks with respect to,x
is the input tensor with the outer most dimension being batch size.GetMask(x_value, feed_dict)
: Returns a mask of the shape of non-batchedx_value
given by the saliency technique.GetSmoothedMask(x_value, feed_dict)
: Returns a mask smoothed of the shape of non-batchedx_value
with the SmoothGrad technique.
The visualization module contains two visualization methods:
VisualizeImageGrayscale(image_3d, percentile)
: Marginalizes across the absolute value of each channel to create a 2D single channel image, and clips the image at the given percentile of the distribution. This method returns a 2D tensor normalized between 0 to 1.VisualizeImageDiverging(image_3d, percentile)
: Marginalizes across the value of each channel to create a 2D single channel image, and clips the image at the given percentile of the distribution. This method returns a 2D tensor normalized between -1 to 1 where zero remains unchanged.
If the sign of the value given by the saliency mask is not important, then use
VisualizeImageGrayscale
, otherwise use VisualizeImageDiverging
. See
the SmoothGrad paper for more details on which visualization method to use.
Examples
This example iPython notebook shows these techniques is a good starting place.
Another example of using GuidedBackprop with SmoothGrad from TensorFlow:
from guided_backprop import GuidedBackprop
import visualization
...
# Tensorflow graph construction here.
y = logits[5]
x = tf.placeholder(...)
...
# Compute guided backprop.
# NOTE: This creates another graph that gets cached, try to avoid creating many
# of these.
guided_backprop_saliency = GuidedBackprop(graph, session, y, x)
...
# Load data.
image = GetImagePNG(...)
...
smoothgrad_guided_backprop =
guided_backprop_saliency.GetMask(image, feed_dict={...})
# Compute a 2D tensor for visualization.
grayscale_visualization = visualization.VisualizeImageGrayscale(
smoothgrad_guided_backprop)
This is not an official Google product.
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 saliency-0.0.5.tar.gz
.
File metadata
- Download URL: saliency-0.0.5.tar.gz
- Upload date:
- Size: 17.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/2.7.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2cae44af399f343034daa79b33bfe90762576dcda33847d862bc534a1a462a6 |
|
MD5 | 26d33efa8ec1311e7520c12845f76baf |
|
BLAKE2b-256 | 0d5d8f160cddeac7b130f2d8caacfbbaade6415ca35c6c6e5fece77073557d35 |
File details
Details for the file saliency-0.0.5-py2.py3-none-any.whl
.
File metadata
- Download URL: saliency-0.0.5-py2.py3-none-any.whl
- Upload date:
- Size: 26.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/2.7.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 981fd77bf799115c4f7b1709cfa0fb0ab5bea4005ad669741c04353fd12a76b8 |
|
MD5 | 65cd121a40f07478a3c5ba57c1db5af7 |
|
BLAKE2b-256 | 54540cf1bb5d60f2fda80ceaf19fda6bc02c0a89c78c58b37db417f21755d906 |