trial and error with the min_overlap 10% to 2%
This commit is contained in:
2
src/sfransen/Saliency/__init__.py
Executable file
2
src/sfransen/Saliency/__init__.py
Executable file
@@ -0,0 +1,2 @@
|
||||
from .base import *
|
||||
from .integrated_gradients import *
|
@@ -1,12 +1,11 @@
|
||||
import numpy as np
|
||||
import tensorflow as tf
|
||||
from tensorflow.keras.applications import densenet
|
||||
|
||||
from base import SaliencyMap
|
||||
from sfransen.Saliency.base import SaliencyMap
|
||||
|
||||
class IntegratedGradients(SaliencyMap):
|
||||
|
||||
def get_mask(self, image, baseline=None, num_steps=2):
|
||||
def get_mask(self, image, baseline=None, num_steps=4):
|
||||
"""Computes Integrated Gradients for a predicted label.
|
||||
|
||||
Args:
|
||||
@@ -28,7 +27,6 @@ class IntegratedGradients(SaliencyMap):
|
||||
baseline = np.zeros(img_size).astype(np.float32)
|
||||
else:
|
||||
baseline = baseline.astype(np.float32)
|
||||
print(">>>> step ONE completed")
|
||||
|
||||
img_input = image
|
||||
top_pred_idx = self.get_top_predicted_idx(image)
|
||||
@@ -37,27 +35,20 @@ class IntegratedGradients(SaliencyMap):
|
||||
for i in range(num_steps + 1)
|
||||
]
|
||||
interpolated_image = np.vstack(interpolated_image).astype(np.float32)
|
||||
print(">>>> step TWO completed")
|
||||
|
||||
grads = []
|
||||
for i, img in enumerate(interpolated_image):
|
||||
print("number of image:",i)
|
||||
print("size of image:",np.shape(img))
|
||||
print(f"interpolation step:",i," out of {num_steps}")
|
||||
img = tf.expand_dims(img, axis=0)
|
||||
grad = self.get_gradients(img)
|
||||
print("size of grad is:",np.shape(grad))
|
||||
grads.append(grad[0])
|
||||
grads = tf.convert_to_tensor(grads, dtype=tf.float32)
|
||||
print(">>>> step THREE completed")
|
||||
|
||||
# 4. Approximate the integral using the trapezoidal rule
|
||||
grads = (grads[:-1] + grads[1:]) / 2.0
|
||||
avg_grads = tf.reduce_mean(grads, axis=0)
|
||||
# tf.reduce_mean(grads, axis=(0, 1, 2, 3))
|
||||
print(">>>> step FOUR completed")
|
||||
|
||||
# 5. Calculate integrated gradients and return
|
||||
integrated_grads = (img_input - baseline) * avg_grads
|
||||
print(">>>> step FIVE completed")
|
||||
|
||||
return integrated_grads
|
||||
|
Reference in New Issue
Block a user