def test_grad_cam(self):
     model = keras.applications.MobileNetV2()
     cam = grad_cam(model,
                    layer_cut='Conv_1',
                    inputs=np.random.random((3, 224, 224, 3)),
                    target_class=0)
     self.assertEqual((3, 7, 7), cam.shape)
 def test_grad_cam_pp(self):
     model = keras.applications.MobileNetV2()
     model = replace_layers(model, activation_mapping={'softmax': 'linear'})
     cam = grad_cam(model,
                    layer_cut='Conv_1',
                    inputs=np.random.random((3, 224, 224, 3)),
                    target_class=0,
                    plus=True)
     self.assertEqual((3, 7, 7), cam.shape)
示例#3
0
def process(target_class,
            cmap='jet',
            alpha=0.5):
    model = keras.applications.MobileNetV2()
    cam = grad_cam(model=model, layer_cut='Conv_1', inputs=inputs, target_class=target_class)[0]

    # Visualization
    heatmap = plt.get_cmap(cmap)(cam, bytes=True)
    heatmap = Image.fromarray(heatmap[..., :3], mode='RGB')
    heatmap = heatmap.resize((original_image.width, original_image.height), resample=Image.BILINEAR)
    return Image.blend(original_image, heatmap, alpha=alpha)