-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Grad CAM for multiple input arguments #501
Comments
Hi there, I am facing a similar issue. My model requires an input that consists of a list containing two tensors. How did you handle this? Could you share your solution? |
Hi, so I handled it by combining the inputs into one tensor and then separating them out in the forward function of my model. For example if you need to input 4 things into your model, you do: inp = torch.cat((a, b, c, d), dim = 0) And then, in the forward function of your model: def forward(self, inp): before you proceed with further steps |
Thank you for your prompt response. I will try it! |
Hi there, I wanted to let you know that my issue has been resolved. Here is my solution: Thank you for your help! |
Hello, good to know that its solved now. Thanks for sharing the issue and the solution! |
I am trying to use GradCam on my model that takes more than one input arguments. I tried to pass *input_tensor instead of input_tensor since I have a list of 4 arguments. I was trying to modify the source code accordingly. I am facing a series of errors. I am at this point now:
Traceback (most recent call last):
File "/home/ishita-wicon/Documents/QA/ISIQA/UNET/expl_exp.py", line 449, in
grayscale_cam = cam(input_tensor=[left_patches, right_patches, left_image_patches, right_image_patches], targets=targets)
File "/home/ishita-wicon/.local/lib/python3.10/site-packages/pytorch_grad_cam/base_cam.py", line 192, in call
return self.forward(input_tensor,
File "/home/ishita-wicon/.local/lib/python3.10/site-packages/pytorch_grad_cam/base_cam.py", line 105, in forward
cam_per_layer = self.compute_cam_per_layer(*input_tensor, #changes to * for list
TypeError: BaseCAM.compute_cam_per_layer() takes 4 positional arguments but 7 were given
Is there any other way?
The text was updated successfully, but these errors were encountered: