pytorch-grad-cam
pytorch-grad-cam copied to clipboard
error when using for densenet121, for 2 output classes.
grayscale_cam = cam(input_tensor=input_tensor, targets=targets)
File "/home/melkor/projects/pytorch-grad-cam/pytorch_grad_cam/base_cam.py", line 188, in call return self.forward(input_tensor, File "/home/melkor/projects/pytorch-grad-cam/pytorch_grad_cam/base_cam.py", line 95, in forward cam_per_layer = self.compute_cam_per_layer(input_tensor, File "/home/melkor/projects/pytorch-grad-cam/pytorch_grad_cam/base_cam.py", line 127, in compute_cam_per_layer cam = self.get_cam_image(input_tensor, File "/home/melkor/projects/pytorch-grad-cam/pytorch_grad_cam/base_cam.py", line 50, in get_cam_image weights = self.get_cam_weights(input_tensor, File "/home/melkor/projects/pytorch-grad-cam/pytorch_grad_cam/grad_cam.py", line 22, in get_cam_weights return np.mean(grads, axis=(2, 3)) File "<array_function internals>", line 180, in mean File "/home/melkor/miniconda3/envs/graph-classificatio/lib/python3.9/site-packages/numpy/core/fromnumeric.py", line 3474, in mean return _methods._mean(a, axis=axis, dtype=dtype, File "/home/melkor/miniconda3/envs/graph-classificatio/lib/python3.9/site-packages/numpy/core/_methods.py", line 167, in _mean rcount = _count_reduce_items(arr, axis, keepdims=keepdims, where=where) File "/home/melkor/miniconda3/envs/graph-classificatio/lib/python3.9/site-packages/numpy/core/_methods.py", line 76, in _count_reduce_items items *= arr.shape[mu.normalize_axis_index(ax, arr.ndim)] numpy.AxisError: axis 2 is out of bounds for array of dimension 0
target_layers = [model.features[-1]] # as mentioned in example, #[BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)]. densenet121
target = 0 or 1 targets = [ClassifierOutputTarget(target)]
How many output neurons does the model have in this case? Is it 1 or 2? If 1 (representing two classes), you can use https://github.com/jacobgil/pytorch-grad-cam/blob/master/pytorch_grad_cam/utils/model_targets.py#L26
from pytorch_grad_cam.utils.model_targets import BinaryClassifierOutputTarget
Hi, I am getting the same error. I have 2 output neurons in my case
Hey, did anyone find a solution to this? this is roadblock for me as well.
numpy.AxisError: axis 2 is out of bounds for array of dimension 2
I meet the same question, do you solve it? thanks
How to add it to training as a loss