我正在尝试基于以下Keras教程(https://arxiv.org/pdf/1610.02391.pdf)和来自tfjs的简单图像分类演示(类似于(http://www.hackevolve.com/where-cnn-is-looking-grad-cam/)在tfjs中实现GradCam(https://github.com/tensorflow/tfjs-examples/blob/master/webcam-transfer-learning/index.js) ),最后是一个简单的,紧密连接的层。
但是,我无法检索gradcam计算所需的梯度。我尝试了不同的方法来检索最后一个连续层的梯度,但未成功,因为来自相应层的tf.LayerVariable类型无法转换为tf.grads或tf.layerGrads的相应类型。
有人已经成功地获得了从连续层到对象的tf.function的梯度吗?
答案 0 :(得分:1)
我不知道实现的来龙去脉,但我认为与此类似:http://jlin.xyz/advis/是您要找的东西吗?
此处提供源代码:https://github.com/jaxball/advis.js(不是我的!)
答案 1 :(得分:0)
tfjs-examples回购中的这个官方示例应该非常接近您想要的:
https://github.com/tensorflow/tfjs-examples/blob/master/visualize-convnet/cam.js#L49