import numpy as np from lime import lime_image from skimage.segmentation import mark_boundaries explainer = lime_image.LimeImageExplainer() def explain_with_lime(model, img_array): def predict_fn(images): return model.predict(np.array(images), verbose=0) explanation = explainer.explain_instance( image=img_array, classifier_fn=predict_fn, top_labels=1, hide_color=0, num_samples=1000 ) temp, mask = explanation.get_image_and_mask( label=explanation.top_labels[0], positive_only=True, num_features=10, hide_rest=False ) return mark_boundaries(temp, mask)