Skip to content

Commit a6f7d2a

Browse files
committed
tests
1 parent 0f6c56b commit a6f7d2a

File tree

4 files changed

+33
-27
lines changed

4 files changed

+33
-27
lines changed

cam.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from pytorch_grad_cam import (
88
GradCAM, HiResCAM, ScoreCAM, GradCAMPlusPlus,
99
AblationCAM, XGradCAM, EigenCAM, EigenGradCAM,
10-
LayerCAM, FullGrad, GradCAMElementWise
10+
LayerCAM, FullGrad, GradCAMElementWise, KPCA_CAM
1111
)
1212
from pytorch_grad_cam import GuidedBackpropReLUModel
1313
from pytorch_grad_cam.utils.image import (
@@ -37,7 +37,7 @@ def get_args():
3737
'gradcam', 'hirescam', 'gradcam++',
3838
'scorecam', 'xgradcam', 'ablationcam',
3939
'eigencam', 'eigengradcam', 'layercam',
40-
'fullgrad', 'gradcamelementwise'
40+
'fullgrad', 'gradcamelementwise', 'kpcacam'
4141
],
4242
help='CAM method')
4343

@@ -73,7 +73,8 @@ def get_args():
7373
"eigengradcam": EigenGradCAM,
7474
"layercam": LayerCAM,
7575
"fullgrad": FullGrad,
76-
"gradcamelementwise": GradCAMElementWise
76+
"gradcamelementwise": GradCAMElementWise,
77+
'kpcacam': KPCA_CAM
7778
}
7879

7980
model = models.resnet50(pretrained=True).to(torch.device(args.device)).eval()

pytorch_grad_cam/__init__.py

+21-20
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
1-
from pytorch_grad_cam.grad_cam import GradCAM
2-
from pytorch_grad_cam.hirescam import HiResCAM
3-
from pytorch_grad_cam.grad_cam_elementwise import GradCAMElementWise
4-
from pytorch_grad_cam.ablation_layer import AblationLayer, AblationLayerVit, AblationLayerFasterRCNN
5-
from pytorch_grad_cam.ablation_cam import AblationCAM
6-
from pytorch_grad_cam.xgrad_cam import XGradCAM
7-
from pytorch_grad_cam.grad_cam_plusplus import GradCAMPlusPlus
8-
from pytorch_grad_cam.score_cam import ScoreCAM
9-
from pytorch_grad_cam.layer_cam import LayerCAM
10-
from pytorch_grad_cam.eigen_cam import EigenCAM
11-
from pytorch_grad_cam.eigen_grad_cam import EigenGradCAM
12-
from pytorch_grad_cam.random_cam import RandomCAM
13-
from pytorch_grad_cam.fullgrad_cam import FullGrad
14-
from pytorch_grad_cam.guided_backprop import GuidedBackpropReLUModel
15-
from pytorch_grad_cam.activations_and_gradients import ActivationsAndGradients
16-
from pytorch_grad_cam.feature_factorization.deep_feature_factorization import DeepFeatureFactorization, run_dff_on_image
17-
import pytorch_grad_cam.utils.model_targets
18-
import pytorch_grad_cam.utils.reshape_transforms
19-
import pytorch_grad_cam.metrics.cam_mult_image
20-
import pytorch_grad_cam.metrics.road
1+
from pytorch_grad_cam.grad_cam import GradCAM
2+
from pytorch_grad_cam.hirescam import HiResCAM
3+
from pytorch_grad_cam.grad_cam_elementwise import GradCAMElementWise
4+
from pytorch_grad_cam.ablation_layer import AblationLayer, AblationLayerVit, AblationLayerFasterRCNN
5+
from pytorch_grad_cam.ablation_cam import AblationCAM
6+
from pytorch_grad_cam.xgrad_cam import XGradCAM
7+
from pytorch_grad_cam.grad_cam_plusplus import GradCAMPlusPlus
8+
from pytorch_grad_cam.score_cam import ScoreCAM
9+
from pytorch_grad_cam.layer_cam import LayerCAM
10+
from pytorch_grad_cam.eigen_cam import EigenCAM
11+
from pytorch_grad_cam.eigen_grad_cam import EigenGradCAM
12+
from pytorch_grad_cam.kpca_cam import KPCA_CAM
13+
from pytorch_grad_cam.random_cam import RandomCAM
14+
from pytorch_grad_cam.fullgrad_cam import FullGrad
15+
from pytorch_grad_cam.guided_backprop import GuidedBackpropReLUModel
16+
from pytorch_grad_cam.activations_and_gradients import ActivationsAndGradients
17+
from pytorch_grad_cam.feature_factorization.deep_feature_factorization import DeepFeatureFactorization, run_dff_on_image
18+
import pytorch_grad_cam.utils.model_targets
19+
import pytorch_grad_cam.utils.reshape_transforms
20+
import pytorch_grad_cam.metrics.cam_mult_image
21+
import pytorch_grad_cam.metrics.road

pytorch_grad_cam/kpca_cam.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ def __init__(self, model, target_layers,
77
super(KPCA_CAM, self).__init__(model,
88
target_layers,
99
reshape_transform,
10-
uses_gradients=False,
11-
kernel=kernel, gamma=gamma)
10+
uses_gradients=False)
11+
self.kernel=kernel
12+
self.gamma=gamma
1213

1314
def get_cam_image(self,
1415
input_tensor,

tests/test_run_all_models.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
EigenCAM, \
1111
EigenGradCAM, \
1212
LayerCAM, \
13-
FullGrad
13+
FullGrad, \
14+
KPCA_CAM
1415
from pytorch_grad_cam.utils.image import show_cam_on_image, \
1516
preprocess_image
1617
from pytorch_grad_cam.utils.model_targets import ClassifierOutputTarget
@@ -50,7 +51,9 @@ def numpy_image():
5051
EigenCAM,
5152
EigenGradCAM,
5253
LayerCAM,
53-
FullGrad])
54+
FullGrad,
55+
KPCA_CAM])
56+
5457
def test_all_cam_models_can_run(numpy_image, batch_size, width, height,
5558
cnn_model, target_layer_names, cam_method,
5659
target_category, aug_smooth, eigen_smooth):

0 commit comments

Comments
 (0)