Coder Social home page Coder Social logo

Binary Score about tf-keras-vis HOT 5 OPEN

albths avatar albths commented on June 12, 2024
Binary Score

from tf-keras-vis.

Comments (5)

keisen avatar keisen commented on June 12, 2024

Hi, @albths .
I will investigate the issue, so could you please submit the code snippet to reproduce the problem?

Thanks!

from tf-keras-vis.

albths avatar albths commented on June 12, 2024

Thanks for the prompt response. I copied your example code for ScoreCam and it only gives me high attention at one corner. However, I just noticed GradCam Plus Plus seems to work. My main question refers to how to visualize the features for both classes in a binary network with only one output node. If I understand correctly, for this purpose you introduced the class "BinaryScore" instead of "CategoricalScore". Let's say class A is dogs and class B is cats. My model output is the probability for dogs (sigmoid). Probability for cats would then be 1-model output. How to set up the scores to visualize features for each class separately?

My code snippet for ScoreCam is analogous to:

scorecam = Scorecam(model)
cam = scorecam(score, X, penultimate_layer=-1)
f, ax = plt.subplots(nrows=1, ncols=3, figsize=(12, 4))
for i, title in enumerate(image_titles):
heatmap = np.uint8(cm.jet(cam[i])[..., :3] * 255)
ax[i].set_title(title, fontsize=16)
ax[i].imshow(images[i])
ax[i].imshow(heatmap, cmap='jet', alpha=0.5)
ax[i].axis('off')
plt.tight_layout()
plt.show()

Thanks a lot!

from tf-keras-vis.

keisen avatar keisen commented on June 12, 2024

Could you also submit the code where creates the BinaryScore instance.

How to set up the scores to visualize features for each class separately?

The web page below may be helpful.

https://keisen.github.io/tf-keras-vis-docs/api/tf_keras_vis.utils.scores.html#binary-classification-task

Thanks!

from tf-keras-vis.

albths avatar albths commented on June 12, 2024

This is exactly, what I was looking for. Thanks a lot. Somehow didn't see these instructions.

However, it seems that using BinaryScore for negative class (i. e. score = Binary(0.0)) produces very strange images with a grid-like (non-informative) feature representation. Would be grateful for any help on that.

from tf-keras-vis.

aguirrejuan avatar aguirrejuan commented on June 12, 2024

Hi, first of all, thanks for the great job on this repo.

I am presenting a similar issue with just one output (sigmoid). The issue seems to be happening for the K.softmax, this is because when one value (which is the case) is given, the returned value is always one.

weights = ([score(K.softmax(p)) for p in prediction]
for score, prediction in zip(scores, preds))

Also, I think the operation of softmax must be over channels instead of logits, the paper says

image

Where softmax is applied over the results for a class in specific. The solution could be
weights = ([score(p) for p in prediction] for score, prediction in zip(scores, press))
weights = (K.softmax(w,axis=0) for w in weights)

from tf-keras-vis.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.