Skip to main content

Saliency methods for TensorFlow

Project description

Saliency Methods

Introduction

This repository contains code for SmoothGrad, as well as implementations of several other saliency techniques. Each of these techniques can also be augmented with SmoothGrad. The techniques implemented in this library are:

This list is by no means comprehensive. We are accepting pull requests to add new methods!

Download

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-batched x_value given by the saliency technique.
  • GetSmoothedMask(x_value, feed_dict): Returns a mask smoothed of the shape of non-batched x_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


Download files

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

Source Distribution

saliency-0.0.4.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

saliency-0.0.4-py2.py3-none-any.whl (26.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file saliency-0.0.4.tar.gz.

File metadata

  • Download URL: saliency-0.0.4.tar.gz
  • Upload date:
  • Size: 16.9 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

Hashes for saliency-0.0.4.tar.gz
Algorithm Hash digest
SHA256 c29b769fcf41696feef0ae58fea3b7ec80faef1da4a699692cba0a414daad97d
MD5 95a79c73fcbc12d8fd58b3c1f1900e5c
BLAKE2b-256 b0f63c22d74723fd49410a121b6ddb75a99536a62aa45ba0035b4689b2d5e7bf

See more details on using hashes here.

File details

Details for the file saliency-0.0.4-py2.py3-none-any.whl.

File metadata

  • Download URL: saliency-0.0.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 26.3 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

Hashes for saliency-0.0.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 627d4d84d34127cdb183944289b4a91a0d0c5a774f4ba462cda2042b0d2e12c0
MD5 9c17d290203067b311ad1e537f9a5d90
BLAKE2b-256 5b891069cfb6c658d15968b7ab4f5c7f114602391b33c4f36e12121d7177714d

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