Pytorch+Matplotlib绘制中间特征图和特征向量

文章讲述了在项目中遇到的问题,即如何将模型中某层输出的特征向量[1,8,1,1]维度转换并可视化。通过使用Matplotlib库,作者尝试了归一化和上采样方法,最终将向量reshape成[1,1,2,4],成功实现了可视化。此外,还提到了对于普通模型如AlexNet,可以使用钩子函数来获取特定层的特征图输出,并推荐了一个GitHub仓库作为参考。

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

项目场景:

需要将模型中某层输出的中间特征图矩阵以及特征向量打印成图片。这里使用Matplotlib库将矩阵以及向量转换成图片输出:

def normalization(data):    # NORMALIZE TO [0,1]
    _range = np.max(data) - np.min(data)
    data = (data - np.min(data)) / _range   # [0,1]
    return data

def fm_vis(feats, save_dir, save_name):
    save_dir = os.path.join(save_dir, save_name)
    if not os.path.exists(save_dir):
        os.makedirs(save_dir)

    feats = normalization(feats[0].cpu().data.numpy())
    for idx in range(min(feats.shape[0], 8)):   #CHANNLE NUMBER
        fms = feats[idx, :, :]
        plt.imshow(fms)
        plt.savefig(os.path.join(save_dir, save_name + '_' + str(idx) + ".png"))

问题描述

中间层输出的特征向量的打印结果有误,这里特征向量的维度是[1,8,1,1],得到以下结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值