在科研论文,方案讲解,模型分析中,合理解释特征图是对最终结果的一个加分项。但是之前的一些可视化特征图的方法往往会有一些麻烦,于是在这里给大家推荐一个非常方便实现这个目标的库 – Evison。
Github链接: GitHub - JonnesLin/Evison: We provide an easy way for visualizing
视频讲解链接: 教你三行代码可视化神经网络特征图_哔哩哔哩_bilibili
代码:
# 首先需要安装Evison
!pip install Evison
from Evison import Display, show_network
from torchvision import models
# 生成我们需要可视化的网络(可以使用自己设计的网络)
network = models.efficientnet_b0(pretrained=True)
# 使用show_network这个辅助函数来看看有什么网络层(layers)
show_network(network)
# 以下是部分输出
'''
features.6.3.block.2
features.6.3.block.2.avgpool
features.6.3.block.2.fc1
features.6.3.block.2.fc2
features.6.3.block.2.activation
features.6.3.block.2.scale_activation
features.6.3.block.3
features.6.3.block.3.0
features.6.3.block.3.1
features.6.3.stochastic_depth
features.7
features.7.0
features.7.0.block
features.7.0.block.0
features.7.0.block.0.0
features.7.0.block.0.1
features.7.0.block.0.2
features.7.0.block.1
features.7.0.block.1.0
features.7.0.block.1.1
features.7.0.block.1.2
features.7.0.block.2
'''
# 构建visualization的对象 以及 制定可视化的网络层
visualized_layer = 'features.7.0'
display = Display(network, visualized_layer, img_size=(224, 224)) # img_size的参数指的是输入图片的大小
# 加载我们想要可视化的图片
from PIL import Image
image = Image.open('Dog_and_cat.jpeg').resize((224, 224))
# 将想要可视化的图片送入display中,然后进行保存
display.save(image)