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.3.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

saliency-0.0.3-py2.py3-none-any.whl (17.6 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: saliency-0.0.3.tar.gz
  • Upload date:
  • Size: 10.2 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.32.2 CPython/3.6.5

File hashes

Hashes for saliency-0.0.3.tar.gz
Algorithm Hash digest
SHA256 333dd7d24a527798449d7c2d128143229cdc74bca170eef19afc945d60e3b6c1
MD5 7748fc9a1862c750c3d6339ed599823f
BLAKE2b-256 84f3a5443d5d684a85d1942e4af008b9e0d4b3538d339576c355ef1987ff7ba7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: saliency-0.0.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 17.6 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.32.2 CPython/3.6.5

File hashes

Hashes for saliency-0.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d8a4ee2c3184c7b7782cf9a1d2e62179c564b09980561d932ab8aa6ed79f6367
MD5 727207d194498db25142c03d198cce02
BLAKE2b-256 34e670868723ef1bd75de2dcee9c6774f53ef0f3a1635125211d4674d4d9c4f3

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