flyingfish7777 / Have-Useful-Tools-YOLOX

YOLOX add Confusion matrix F1_curve P_curve PR_curve R_curve Grad-CAM YOLOX新增了混淆矩阵PR曲线F1曲线热力图等东西
Apache License 2.0
12 stars 1 forks source link

grad can be implicitly created only for scalar outputs #1

Open ALittleDuckA opened 1 year ago

ALittleDuckA commented 1 year ago

我在运行下载的代码时,grayscale_cam = cam(input_tensor=image_tensor, targets=target_category) # [batch, 224,224] 在这里会报错误, raise RuntimeError("grad can be implicitly created only for scalar outputs") RuntimeError: grad can be implicitly created only for scalar outputs。 我试着更改model为resnet101,就可以正常运行。我仅仅将改动了model = resnet101 这一行代码,你知道什么原因吗?

flyingfish7777 commented 1 year ago

emmm,出现这种情况,应该是忘记修改base_cam.py文件了,你可以仔细看看base_cam.py的修改,好像是因为YOLO的梯度不外露,所以要修改包文件。

ALittleDuckA commented 1 year ago

我调用了你给的base_cam文件,确实是这里的问题,非常感谢您的帮助。

Kyle-fang commented 1 year ago

我调用了你给的base_cam文件,确实是这里的问题,非常感谢您的帮助。

你好!是在draw_cam.py中调用base_cam.py吗?

Kyle-fang commented 1 year ago

emmm,出现这种情况,应该是忘记修改base_cam.py文件了,你可以仔细看看base_cam.py的修改,好像是因为YOLO的梯度不外露,所以要修改包文件。

你好!请问如何修改base_cam.py文件呢?项目中好像没有说明。

flyingfish7777 commented 1 year ago

emmm,出现这种情况,应该是忘记修改base_cam.py文件了,你可以仔细看看base_cam.py的修改,好像是因为YOLO的梯度不外露,所以要修改包文件。

你好!请问如何修改base_cam.py文件呢?项目中好像没有说明。

你好,修改base_cam文件,在pip install grad_cam==1.4.3 后,你所安装的envs环境里面找,在一般在anaconda/envs里面。 只有draw_cam里调用了base_cam

ALittleDuckA commented 1 year ago

对的,我只在draw_cam里面修改了 from base_cam import GradCAM 这句代码,可以正常跑通,热力显示在原图上时可能位置会比较散,你可以在 grayscale_cam = cam 代码里添加平滑处理

Totoro-wen commented 1 year ago

对的,我只在draw_cam里面修改了 from base_cam import GradCAM 这句代码,可以正常跑通,热力显示在原图上时可能位置会比较散,你可以在 grayscale_cam = cam 代码里添加平滑处理

您好,我和您一样的情况,热力在原图上的位置很分散,请问怎么平滑处理