学习Grad-CAM热力图可视化原理
掌握YOLOv5上的Grad-CAM热力图可视化方法
你将收获
学习Grad-CAM热力图可视化原理
掌握YOLOv5上的Grad-CAM热力图可视化方法
适用人群
课程介绍
PyTorch版的YOLOv5是一个非常流行的基于深度学习的目标检测器。本课程使用Grad-CAM热力图可视化方法对YOLOv5进行热力图可视化,可直观展示图像中哪些区域对类别分类贡献程度大。
Grad-CAM是一种CNN(卷积神经网络)可解释性的经典方法,与CAM(类激活图)相比,不需要对模型进行改动就可以生成热力图(heatmap),非常方便和灵活。
本课程在YOLOv5 v6.1版本代码的基础上增加Grad-CAM热力图可视化方法,并演示针对自己的数据集训练和进行Grad-CAM热力图可视化过程,并讲解原代码针对Grad-CAM热力图可视化的修改部分。
本课程分为原理篇、实战篇、代码讲解篇。
· 原理篇包括:Grad-CAM热力图可视化原理。
· 实战篇包括:PyTorch环境安装、YOLOv5项目安装、准备自己的数据集、修改配置文件、训练自己的数据集、Grad-CAM热力图可视化。
· 代码讲解篇包括:针对Grad-CAM热力图可视化具体修改的代码讲解。
课程目录
教授,您好,自己的数据集训练,出现以下错误,如何处理。
train: Scanning 'D:\yolov5-6.1-gradcam\VOCdevkit\labels\train' images and labels...1415 found, 0 missing, 0 empty, 0 corrupt: 100%|████████████████████████████████| 1415/1415 [00:02<00:00, 549.25it/s]
train: WARNING: Cache directory D:\yolov5-6.1-gradcam\VOCdevkit\labels is not writeable: [WinError 183] 当文件已存在时,无法创建该文件。: 'D:\yolov5-6.1-gradcam\VOCdevkit\labels\train.cache.npy' -> 'D:\yolov5-6.1-gradcam\VOCdevkit\labels\train.cache'
val: Scanning 'D:\yolov5-6.1-gradcam\VOCdevkit\labels\val' images and labels...995 found, 0 missing, 0 empty, 0 corrupt: 100%|███████████████████████████████████████| 995/995 [00:05<00:00, 194.98it/s]
val: WARNING: Cache directory D:\yolov5-6.1-gradcam\VOCdevkit\labels is not writeable: [WinError 183] 当文件已存在时,无法创建该文件。: 'D:\yolov5-6.1-gradcam\VOCdevkit\labels\val.cache.npy' -> 'D:\yolov5-6.1-gradcam\VOCdevkit\labels\val.cache'
Epoch gpu_mem box obj cls labels img_size
0/99 3.5G 0.109 0.02131 0.01933 14 640: 100%|██████████| 89/89 [00:22<00:00, 3.88it/s]
Class Images Labels P R mAP@.5 mAP@.5:.95: 0%| | 0/32 [00:00<?, ?it/s]
Traceback (most recent call last):
File "train.py", line 643, in
main(opt)
File "train.py", line 539, in main
train(opt.hyp, opt, device, callbacks)
File "train.py", line 370, in train
results, maps, _ = val.run(data_dict,
File "D:\Users\LENOVO\anaconda3\envs\v5\lib\site-packages\torch\autograd\grad_mode.py", line 28, in decorate_context
return func(*args, **kwargs)
File "D:\yolov5-6.1-gradcam\val.py", line 193, in run
out, train_out = model(im) if training else model(im, augment=augment, val=True) # inference, loss outputs
ValueError: too many values to unpack (expected 2)
老师您好,我通读了您的代码,同时使用自制的数据集进行实验,发现我输入不同的图片导致激活值和梯度值的向量图尺寸不一样,有的是(16,20)有的是(14,20)不知道原因
老师,麻烦问下,运行main文件提升错误:torch.nn.modules.module.ModuleAttributeError: 'SiLU' object has no attribute 'register_full_backward_hook',该如何解决
請問如果要使用1280的img size需要更改那一部分?
注意使用课程网盘上的代码
使用课程网盘上的权重文件试一下
先用课程中的数据集试一下,看能否复现
应该可以
可以参考课程中提供的数据集
电脑上视频播放时,屏幕左上可看到“下载课件”的链接。先下载课件,项目流程的课件中有网盘链接,可下载其它课程资料。
电脑上视频播放时,屏幕左上可看到“下载课件”的链接。先下载课件,项目流程的课件中有网盘链接,可下载其它课程资料。
yolov5是用pytorch开发的,没有tensorflow版本
再检查和对比下项目流程,看是否漏掉了什么
检查一下你的数据集的标签是否和课程的格式一样
电脑上视频播放时,屏幕左上可看到“下载课件”的链接。先下载课件,项目流程的课件中有百度网盘链接,可下载其它课程资料。
电脑上视频播放时,屏幕左上可看到“下载课件”的链接。先下载课件,项目流程的课件中有网盘链接,可下载其它课程资料。
注意物体可能由不同的target_layer获得,可修改下试试
目前没有这门课,你看懂代码后可以自己改一下
好的