

arange ( 256 )) jet_heatmap = jet_colors # Create an image with RGB colorized heatmap jet_heatmap = keras. get_cmap ( "jet" ) # Use RGB values of the colormap jet_colors = jet ( np. uint8 ( 255 * heatmap ) # Use jet colormap to colorize heatmap jet = cm. img_to_array ( img ) # Rescale heatmap to a range 0-255 heatmap = np. numpy ()ĭef save_and_display_gradcam ( img_path, heatmap, cam_path = "cam.jpg", alpha = 0.4 ): # Load the original image img = keras. squeeze ( heatmap ) # For visualization purpose, we will also normalize the heatmap between 0 & 1 heatmap = tf. reduce_mean ( grads, axis = ( 0, 1, 2 )) # We multiply each channel in the feature map array # by "how important this channel is" with regard to the top predicted class # then sum all the channels to obtain the heatmap class activation last_conv_layer_output = last_conv_layer_output heatmap = last_conv_layer_output pooled_grads heatmap = tf. gradient ( class_channel, last_conv_layer_output ) # This is a vector where each entry is the mean intensity of the gradient # over a specific feature map channel pooled_grads = tf. argmax ( preds ) class_channel = preds # This is the gradient of the output neuron (top predicted or chosen) # with regard to the output feature map of the last conv layer grads = tape. GradientTape () as tape : last_conv_layer_output, preds = grad_model ( img_array ) if pred_index is None : pred_index = tf.

Model (, ) # Then, we compute the gradient of the top predicted class for our input image # with respect to the activations of the last conv layer with tf. expand_dims ( array, axis = 0 ) return array def make_gradcam_heatmap ( img_array, model, last_conv_layer_name, pred_index = None ): # First, we create a model that maps the input image to the activations # of the last conv layer as well as the output predictions grad_model = tf. img_to_array ( img ) # We add a dimension to transform our array into a "batch" # of size (1, 299, 299, 3) array = np. load_img ( img_path, target_size = size ) # `array` is a float32 Numpy array of shape (299, 299, 3) array = keras. Def get_img_array ( img_path, size ): # `img` is a PIL image of size 299x299 img = keras.
