mburaksayici / Why

Frame-agnostic XAI Library for Computer Vision, for understanding why models behave that way.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WHY2

Framework-agnostic XAI Library for Computer Vision, for understanding why models behave that way.

Gradcam Methods

  • GradCam : Implemented for classification problems, for PyTorch and Tensorflow/Keras.
  • GradCam++ : Implemented for classification problems, for PyTorch and Tensorflow/Keras.

Model Independent Explainers:

Post-hoc explanations

  • Example(Prototype) based methods such as ProtoPNet (To be done)

Weights Analysis

  • To be done

How to install

pip install Why-XAI==0.1.0

How to run?


from why import Explain
from PIL import Image

filename = "my_perfect_image.png"

original_image = Image.open(filename)
preprocessed_image = preprocess_image(original_image)

raw_model = keras.applications.EfficientNetV2B0(weights='imagenet', include_top=True)

why_explain = Explain(raw_model)
heatmap = why_explain.explain(preprocessed_image,explain_class=999)

overlay_heatmap = why_explain.overlay_heatmap(original_image, heatmap, filename="my_saving_path.png", image_size=(1024,1024), alpha=0.5, colormap_name="jet", return_bytes=False)


whytf

extract_xai_area = why_explain.extract_area(
        preprocessed_image,
        original_image,
        threshold=0.85,
        explain_class=999,
        method="GradCam",
    )


extract

segment_xai_area_coordinates = why_explain.annotate(
        img_batch,
        imgorig.size,
        threshold=0.85,
        explain_class=None,
        method="GradCam",
    )
        
im = plt.imread(filename)
implot = plt.imshow(im)
for p,q in  [(x["x"],x["y"]) for x in segment_xai_area_coordinates]:
    x_cord = p # try this change (p and q are already the coordinates)
    y_cord = q
    plt.scatter([x_cord], [y_cord])

plt.savefig("my_segment_area.png)
plt.clf() 

segment

About

Frame-agnostic XAI Library for Computer Vision, for understanding why models behave that way.

License:MIT License


Languages

Language:Jupyter Notebook 91.4%Language:Python 8.6%