Skip to main content

Saliency maps and Grad-CAM visualizations using TensorFlow and Keras

Project description

Paica

A TensorFlow-based package for generating Saliency Maps and Grad-CAM visualizations for convolutional neural networks.

This package helps interpret deep learning models by highlighting the regions of an image that most influence model predictions.


Features

  • Easy image preprocessing & visualization
  • Saliency map generation & visualization
  • Grad-CAM++ generation & visualization
  • Works with TensorFlow / Keras models
  • Supports pretrained models (e.g. VGG16)

Installation

pip install paica

Sample Code

  1. Saliency Maps
import tensorflow as tf
from paica import create_image_tensors, smoothgrad_saliency
from paica import visualize_saliency_maps

# Load model
model = tf.keras.models.load_model(model_path)

# Create image tensors
dog_orig, dog_tensor = create_image_tensors(dog_img_path)
cat_orig, cat_tensor = create_image_tensors(cat_image_path)

# Define variables
alpha = 0.5
images = [dog_orig, cat_orig]
image_titles = ['Dog', 'Cat']

# Generate SmoothGrad Saliency Maps
saliency_map_dog = smoothgrad_saliency(model, dog_tensor, class_index=None, n_samples=25, noise_level=0.1)
saliency_map_cat = smoothgrad_saliency(model, cat_tensor, class_index=None, n_samples=25, noise_level=0.1)
saliency_maps = [saliency_map_dog, saliency_map_cat]

# Visualize Saliency Maps
visualize_saliency_maps(image_titles, images, saliency_maps, alpha)

  1. GradCAM++
import tensorflow as tf
from paica import create_image_tensors, gradcam_plus_plus
from paica import visualize_grad_cams

# Load model
model = tf.keras.models.load_model(model_path)

# Create image tensors
dog_orig, dog_tensor = create_image_tensors(dog_img_path)
cat_orig, cat_tensor = create_image_tensors(cat_image_path)

# Define variables
alpha = 0.5
images = [dog_orig, cat_orig]
image_titles = ['Dog', 'Cat']

# Find last conv layer name
for layer in model.layers[::-1]:
  if isinstance(layer, tf.keras.layers.Conv2D):
    last_conv_layer_name = str(layer.name)
    break

# Create GradCAM heatmaps
heatmap_dog = gradcam_plus_plus(model, dog_tensor, last_conv_layer_name=last_conv_layer_name,
                            class_index=None, smoothgrad=True, n_samples=15, noise_level=0.1)
heatmap_cat = gradcam_plus_plus(model, cat_tensor, last_conv_layer_name=last_conv_layer_name,
                            class_index=None, smoothgrad=True, n_samples=15, noise_level=0.1)

# Create heatmap list
heatmaps = [heatmap_dog, heatmap_cat]

# Visualize GradCAMs
visualize_grad_cams(image_titles, images, heatmaps, alpha)

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

paica-0.1.0.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

paica-0.1.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file paica-0.1.0.tar.gz.

File metadata

  • Download URL: paica-0.1.0.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for paica-0.1.0.tar.gz
Algorithm Hash digest
SHA256 892638a7d6fd28af1b2e8ee49fc6527f10473b89a854dbe47dcb5bcb9230bf8e
MD5 617669dd90ff6a4374245fb5fd870bdd
BLAKE2b-256 0a57272d123b32490d85d9efb4bd03488ab1132404fdfd96d4dec7225147b162

See more details on using hashes here.

File details

Details for the file paica-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: paica-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for paica-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e2ef1875396bbddebf32e83c8627a6014af126e145f0d192337ca3936a88ab8a
MD5 b9386d883bdb10e3d941eabd0bd2d686
BLAKE2b-256 ff2e17385429400540b3aa99e0b6a9593e8818f88b64d5b6e6f6827865c68e03

See more details on using hashes here.

Supported by

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