可视化模块

目录

可视化送入网络的图片

送入的数据为imgs,其大小为(8,3,256,256),并以2行8列进行展示

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

# 假设你的张量名为 tensor,形状为 (8, 3, 256, 256)
# 假设通道顺序为 RGB

# 将张量的数据格式转换为 (8, 256, 256, 3)
tensor = imgs.permute(0, 2, 3, 1)

# 创建一个 2x4 的子图布局,8 张图像
fig, axes = plt.subplots(2, 4, figsize=(12, 6))

for i in range(8):
    # 选择子图
    ax = axes[i // 4, i % 4]

    # 获取第 i 张图像的数据
    image = tensor[i].numpy()

    # 确保图像的像素值在 [0, 1] 范围内
    image = np.clip(image, 0, 1)

    # 绘制图像
    ax.imshow(image)
    ax.set_title(f'Image {i + 1}')
    ax.axis('off')

plt.tight_layout()
plt.show()

可视化网络层的热力图

python 复制代码
import torch
import matplotlib.pyplot as plt

# 创建一个空的列表来存储该层的输出
activation = []

# 定义一个钩子函数,用于获取该层的输出
def hook_fn(module, input, output):
    activation.append(output)

# 注册钩子到网络的fam4层
model.fam4.register_forward_hook(hook_fn)

# 初始化一个子图,排列方式为2x4
fig, axs = plt.subplots(2, 4, figsize=(16, 8))


# 将输入数据图片传递给网络进行前向传播
output = model(imgs)  

for i in range(8):
    # 获取钩子记录的该层的输出
    layer_output = activation[0]

    # 计算热力图
    heatmap = layer_output.mean(dim=1, keepdim=True)  # 在通道维度上取平均值

    # 可视化热力图
    axs[i // 4, i % 4].imshow(heatmap[i, 0].cpu().detach().numpy(), cmap='viridis')
    axs[i // 4, i % 4].set_title(f'Image {i + 1}')
    axs[i // 4, i % 4].axis('off')

plt.show()
相关推荐
kishu_iOS&AI7 小时前
Pytorch —— 自动微分模块
人工智能·pytorch·python·深度学习·算法·线性回归
海天一色y7 小时前
基于PyTorch的Oxford-IIIT Pet宠物品种细粒度分类:全流程实战指南
pytorch·分类·宠物
韩师傅8 小时前
12GB 小模型路由器(推理篇):INT4、vLLM 与双 QLoRA 切换
pytorch·架构·llm
Westward-sun.21 小时前
PyTorch迁移学习实战:用ResNet18实现20类食物图像分类(附代码详解)
pytorch·分类·迁移学习
ForDreamMusk1 天前
PyTorch编程基础
人工智能·pytorch
郝学胜-神的一滴1 天前
神经网络参数初始化:从梯度失控到模型收敛的核心密码
人工智能·pytorch·深度学习·神经网络·机器学习·软件构建·软件设计
机器学习之心1 天前
一键替换数据集!基于PSO多目标优化与SHAP可解释分析的回归预测神器来了PyTorch构建
pytorch·回归·可解释分析·pso多目标优化
配奇1 天前
PyTorch 核心使用
人工智能·pytorch·python
墨心@1 天前
pytorch 与资源核算
pytorch·语言模型·大语言模型·datawhale·组队学习
李昊哲小课1 天前
WSL Ubuntu 24.04 GPU 加速环境完整安装指南
c++·pytorch·深度学习·ubuntu·cuda·tensorflow2