定义:
GradCAM是一个典型及有效的梯度解释器
代码如下:
import mindspore as ms
from mindspore import Tensor
from mindspore_xai.explanation import GradCAM
# 通常指定最后一层的卷积层
grad_cam = GradCAM(net, layer="layer4")
# 5 是'boat'类的ID
saliency = grad_cam(boat_image, targets=5)
如果输入的是一个 1xCx224x224 的图片Tensor,那返回的saliency就是一个 1x1x224x224 的热力图Tensor。
批次解释
对于梯度解释器,批次解释通常较有效率,但其他解释器也可以使用:
代码如下:
from dataset import load_dataset
test_ds = load_dataset('xai_examples_data/test').batch(4)
for images, labels in test_ds:
saliencies = grad_cam(images, targets=Tensor([5, 5, 5, 5], dtype=ms.int32))
# 其他用户操作 ...
如果输入的是一个 4xCx224x224 的批次图片Tensor,那返回的saliency就是一个 4x1x224x224 的批次热力图Tensor。
使用其他解释器
使用其他解释器(RISEPlus 除外)的方法跟 GradCAM 的使用