尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

hook来获取模型每层的激活值输出

hook来获取模型每层的激活值输出
📅 发布时间:2026/6/20 19:46:08

import sys

import os

from pathlib import Path

# 解决 OpenMP 库冲突问题

os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'

# 添加项目根目录到 Python 路径

project_root = Path(__file__).parent.parent

sys.path.insert(0, str(project_root))

import torch

import torch.nn as nn

import matplotlib.pyplot as plt

import torchvision

from models.UNeXt.UNeXt_Stripe_Conv import UNext_Stripe_Conv

# ========== 1. 准备一个存储激活值的字典 ==========

activations = {}

#x1.detach()的意思是:把张量从计算图中"剪断",不再追踪梯度

def get_activation(name):

"""定义hook函数"""

def hook(model, input, output):

activations[name] = output.detach()

return hook

# ========== 2. 给模型的层注册hook ==========

model = UNext_Stripe_Conv(num_classes=1)

model.eval()

# 给所有卷积层注册hook

for name, layer in model.named_modules():

if isinstance(layer, nn.Conv2d):

layer.register_forward_hook(get_activation(name))

# ========== 3. 前向传播,自动捕获激活值 ==========

input_image = torch.randn(1, 3, 224, 224)

with torch.no_grad():

output = model(input_image)

# ========== 4. 可视化任意层 ==========

def visualize_layer(layer_name, num_channels=16):

"""显示某层的前num_channels个通道"""

act = activations[layer_name][0] # [C, H, W]

fig, axes = plt.subplots(4, 4, figsize=(10, 10))

for i, ax in enumerate(axes.flat):

if i < min(num_channels, act.shape[0]):

ax.imshow(act[i].cpu(), cmap='viridis')

ax.set_title(f'Ch {i}')

ax.axis('off')

plt.suptitle(f'{layer_name}')

plt.show()

# 使用

print(f"捕获了 {len(activations)} 层")

first_conv = list(activations.keys())[0]

visualize_layer(first_conv)

相关新闻

  • baresip SIP账户配置终极指南:从入门到精通
  • 图解网络40
  • 【资源对接会哪个靠谱】落地执行与效果验证:一套可复用的筛选方

最新新闻

  • 大模型本地实践三支柱:模型本体、推理引擎与微调范式
  • emWin控件实战:MULTIPAGE、PROGBAR、RADIO、SCROLLBAR核心API与嵌入式GUI开发指南
  • 基于OpenCV和Python的人脸识别系统_django2(设计源文件+万字报告+讲解)(支持资料、图片参考_降重降ai)
  • 架构重构指南:PCL2启动器Java环境管理的三层架构深度解析
  • 终极指南:3步掌握SMUDebugTool,轻松优化AMD Ryzen系统性能
  • AutoSubs终极指南:如何在本地设备上免费生成AI字幕,无缝集成DaVinci Resolve

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号