Skip to content

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

License

Notifications You must be signed in to change notification settings

mburaksayici/Why

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published