Skip to content

Instantly share code, notes, and snippets.

View andrewschreiber's full-sized avatar
🎯
Focusing

Andrew Schreiber andrewschreiber

🎯
Focusing
View GitHub Profile
from model.data import mnist_train_test_sets
from model.network import LeNet5
from saliency.vanilla_gradient import save_vanilla_gradient
# Get MNIST dataset, preprocessed
train_images, train_labels, test_images, test_labels = mnist_train_test_sets()
# Load net with 98% acc weights
net = LeNet5(weights_path="15epoch_weights.pkl")
# Generate saliency maps for the first 10 images
@andrewschreiber
andrewschreiber / vg_p1.py
Last active August 16, 2019 06:15
def save_vanilla_gradient(network, data, labels), see https://github.com/andrewschreiber/numpy-saliency
# Create a saliency map for each data point
for i, image in enumerate(data):
# Run a forward pass with an image
output = image
for l in range(len(network.layers)):
output = network.layers[l].forward(output)
# Backprop to get gradient
label_one_hot = labels[i]
dy = np.array(label_one_hot)
for l in range(len(network.layers)-1, -1, -1):
dout = network.layers[l].backward(dy)
dy = dout
@andrewschreiber
andrewschreiber / vg_logic.py
Created August 16, 2019 06:29
def save_vanilla_gradient(network, data, labels), see https://github.com/andrewschreiber/numpy-saliency
# Create a saliency map for each data point
for i, image in enumerate(data):
# Forward pass on image
# Note: the activations from this are saved on each layer
output = image
for l in range(len(network.layers)):
output = network.layers[l].forward(output)
# Backprop to get gradient
label_one_hot = labels[i]
# Create a saliency map for each data point
for i, image in enumerate(data):
# Forward pass on image
# Note: the activations are saved on each layer
output = image
for l in range(len(network.layers)):
output = network.layers[l].forward(output)
# Backprop to get gradient
label_one_hot = labels[i]