Datawhale 深入浅出Pytorch【第七章:PyTorch可视化】

本文深入浅出地探讨了使用PyTorch进行深度学习模型的可视化,包括Torchvision的网络结构可视化,CNN卷积核与特征图的可视化,以及如何利用TensorBoard进行训练过程的全面可视化。通过可视化,可以更好地理解模型的工作原理和训练动态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、网络结构可视化

1. Torchvision可视化

通过Torchvision进行可视化,可以帮助我们弄清神经网络每一层的输入结构、输出结构及参数等信息。
在这里插入图片描述

下图给出网络总的参数:11689512;可训练的参数为11689512;不可训练的参数为0;于此同时,当我们发现参数量很大的时候我们可以通过减少特定的层来减少参数量。

在这里插入图片描述

二、CNN可视化

理解CNN的重要一步是可视化,包括可视化特征是如何提取的、提取到的特征的形式以及模型在输入数据上的关注点等。

  1. 首先确定模型有哪些层,卷积层的是哪个。
    用dict(resnet18.named_children())[‘conv1’]来查看网络的层结构。
  2. 需要确定卷积层参数的情况。
    用 .weight.cpu().detach()
  3. 查看kernel_set的大小,逐次遍历kernel_set的内容去获得卷积核,并用matplotlib来进行可视化

1.可视化CNN卷积核的方法

卷积核在CNN中负责提取特征,可视化卷积核能够帮助人们理解CNN各个层在提取什么样的特征,进而理解模型的工作原理。
在这里插入图片描述

2.可视化CNN特征图的方法–HOOK

我们需要在层上挂上钩子hook,当数据向水流一样向前传播后,这一层钩子上所留下的东西就是我们想要的特征图。

可视化CNN显著图(class activation map)

class activation map (CAM)的作用是判断哪些变量对模型来说是重要的,在CNN可视化的场景下,即判断图像中哪些像素点对预测结果是重要的

from pytorch_grad_cam import GradCAM,ScoreCAM,GradCAMPlusPlus,AblationCAM,XGradCAM,EigenCAM,FullGrad
from pytorch_grad_cam.utils.model_targets import ClassifierOutputTarget
from pytorch_grad_cam.utils.image import show_cam_on_image

target_layers = [model.features[-1]]
# 选取合适的类激活图,但是ScoreCAM和AblationCAM需要batch_size
cam = GradCAM(model=model,target_layers=target_layers)
targets = [ClassifierOutputTarget(preds)]   
# 上方preds需要设定,比如ImageNet有1000类,这里可以设为200
grayscale_cam = cam(input_tensor=img_tensor, targets=targets)
grayscale_cam = grayscale_cam[0, :]
cam_img = show_cam_on_image(rgb_img, grayscale_cam, use_rgb=True)
print(type(cam_img))
Image.fromarray(cam_img)

在这里插入图片描述

三、使用TensorBoard完成训练过程可视化

TensorBoard作为一款可视化工具能够满足上面提到的各种需求。TensorBoard由TensorFlow团队开发,最早和TensorFlow配合使用,后来广泛应用于各种深度学习框架的可视化中来。

TensorBoard模型结构可视化

在这里插入图片描述

TensorBoard图像可视化

在这里插入图片描述

TensorBoard连续变量可视化

在这里插入图片描述

TensorBoard参数分布可视化

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值