| 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) | |