def grad_cam(input_model, image, weights, feature_maps=None):
#activation size of final convolition layer is 10x10"
cam = np.ones((10, 10), dtype=np.float32)
# Add weighted activation maps
grads_val = weights
for i in range(grads_val.shape[0]):
# Added relu
temp = (weights[i, :] * feature_maps[:, :, i])
np.maximum(temp, 0, temp)
cam += temp
# resize and normalization
del feature_maps
cam = cv2.resize(cam, (299, 299))
# Relu
cam = np.maximum(cam, 0)
cam = cam / np.max(cam)
image = image[0, :]
image -= np.min(image)
image = np.minimum(image, 255)
# print image.shape
cam = cv2.applyColorMap(np.uint8(255 * cam), cv2.COLORMAP_JET)
cam = 0.5*np.float32(cam) + 0.5*np.float32(image)
cam = 255 * cam / np.max(cam)
return np.uint8(cam)
visualization.py 文件源码
python
阅读 28
收藏 0
点赞 0
评论 0
评论列表
文章目录