神经网络输出中间特征图

在进行神经网络的训练过程中,会生成不同的特征图信息,这些特征图中包含大量图像信息,如轮廓信息,细节信息等,然而,我们一般只获取最终的输出结果,至于中间的特征图则很少关注。

前两天师弟突然问起了这个问题,但我也没有头绪,后来和师弟研究了一下,大概有了一个思路。

即每个特征提取模块都会输出一个特征图,这些特征图的每个像素实际上就是一些数值,那么只需要将这些数值保存,再以图像的形式展现出来便OK了。

基于这个思路,我们来进行设计。在观测输出的特征图时,我们可以使用推理代码来进行输出,因为推理时所消耗的资源较少且推理时可以很明确我们输入的图像是什么。

至于要想实现的效果:

原图:

输出的特征图:

那么该如何进行呢?

首先是要明确你要输出哪个阶段的特征图像,博主分别选择了主干网络四个阶段的输出结果,输出的特征图大小分别为:

python 复制代码
x的shape: torch.Size([1, 64, 200, 300])
x的shape: torch.Size([1, 128, 100, 150])
x的shape: torch.Size([1, 320, 50, 75])
x的shape: torch.Size([1, 512, 25, 38])

代码实现

在要输出特征图的模块后面讲特征图保存为numpy的格式:

python 复制代码
sb = x.cpu().data.numpy()
np.save('matric'+str(i)+'.npy', sb)#这里的i是对应四个阶段的id

读取numpy格式数据并转换为特征图:

python 复制代码
import numpy as np
import os
import matplotlib.pyplot as plt
import torch
import torch.nn as nn

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], 200*300)):  # CHANNLE NUMBER
        fms = feats[idx, :, :]
        plt.imshow(fms)
        plt.savefig(os.path.join(save_dir, save_name + '_' + str(idx) + ".png"))
        
for i in range(0,4):
    s_b1 = np.load('matric'+str(i)+'.npy')
    print(s_b1)
    s_b2 = torch.from_numpy(s_b1)
    out_dir = "outputs"
    s_b = s_b2.reshape(1, 64, 200, 300)
    fm_vis(s_b, out_dir, "s_b_vis"+str(i))

最终结果:输出四个阶段的特征图,博主选了其中几张:



相关推荐
55873 生态系统2 分钟前
技术第4篇,【架构实战】55873 双层安全风控架构:Rust 底层硬拦截 + AI 语义研判双保险设计全解
人工智能·55873全域文明生态体系·55873操作系统·全域文明生态系统·55873技术底座
天远Date Lab2 分钟前
零信任架构实战:基于天远手机在网状态V即时版构建自动化通信网关
人工智能·ai·工具分享
元岳数字人小元5 分钟前
无惧网络受限:数字人私有化部署打造离线全域服务能力
运维·人工智能·开源·人机交互·交互
kaixin_啊啊8 分钟前
Micam 多容器太吃资源?用 Go2RTC + EasyNVR 给小米摄像头换一套轻量本地录像方案
图像处理·人工智能·摄像头
具身AGI11 分钟前
具身ICL走热,物理AI 自主学习能力 多一条轴
人工智能
雾屿_Mistisle12 分钟前
本地 AI 工作台的 Agent 化改造:从聊天转发到 22 个工具
人工智能
水如烟14 分钟前
孤能子视角:蓝星文明篇·异——正当性叙事的裂缝:负续指的聚合与相变
人工智能
美狐美颜SDK开放平台21 分钟前
直播APP源码与视频美颜sdk如何配合?一套完整开发思路
android·人工智能·计算机视觉·音视频·直播美颜sdk
不会写代码的女程序猿23 分钟前
商用 AI 四诊仪技术拆解|明理 AI 四诊仪多模态采集方案解析
大数据·人工智能·科技·ai·健康医疗
IT_陈寒33 分钟前
Redis大key删除引发的服务雪崩,这次我真记住了
前端·人工智能·后端