第七章:PyTorch可视化
一、网络结构可视化
1. Torchvision可视化
通过Torchvision进行可视化,可以帮助我们弄清神经网络每一层的输入结构、输出结构及参数等信息。
下图给出网络总的参数:11689512;可训练的参数为11689512;不可训练的参数为0;于此同时,当我们发现参数量很大的时候我们可以通过减少特定的层来减少参数量。
二、CNN可视化
理解CNN的重要一步是可视化,包括可视化特征是如何提取的、提取到的特征的形式以及模型在输入数据上的关注点等。
- 首先确定模型有哪些层,卷积层的是哪个。
用dict(resnet18.named_children())[‘conv1’]来查看网络的层结构。 - 需要确定卷积层参数的情况。
用 .weight.cpu().detach() - 查看kernel_set的大小,逐次遍历kernel_set的内容去获得卷积核,并用matplotlib来进行可视化
1.可视化CNN卷积核的方法
卷积核在CNN中负责提取特征,可视化卷积核能够帮助人们理解CNN各个层在提取什么样的特征,进而理解模型的工作原理。
2.可视化CNN特征图的方法–HOOK
我们需要在层上挂上钩子hook,当数据向水流一样向前传播后,这一层钩子上所留下的东西就是我们想要的特征图。