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
- 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)
- 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
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
paica-0.1.0.tar.gz
(4.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
paica-0.1.0-py3-none-any.whl
(5.1 kB
view details)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
892638a7d6fd28af1b2e8ee49fc6527f10473b89a854dbe47dcb5bcb9230bf8e
|
|
| MD5 |
617669dd90ff6a4374245fb5fd870bdd
|
|
| BLAKE2b-256 |
0a57272d123b32490d85d9efb4bd03488ab1132404fdfd96d4dec7225147b162
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2ef1875396bbddebf32e83c8627a6014af126e145f0d192337ca3936a88ab8a
|
|
| MD5 |
b9386d883bdb10e3d941eabd0bd2d686
|
|
| BLAKE2b-256 |
ff2e17385429400540b3aa99e0b6a9593e8818f88b64d5b6e6f6827865c68e03
|