news 2026/5/30 15:04:27

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
hook来获取模型每层的激活值输出

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)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 1:51:01

GPT-5.2 全面解读:AI 发展新阶段

2025 年 12 月 11 日&#xff0c;OpenAI 正式发布了 GPT-5.2 系列模型&#xff0c;这是迄今为止该公司针对专业知识工作与复杂任务处理打造的最强模型系列之一。此发布也是 OpenAI 在 AI 激烈竞争格局下的一次重要战略调整&#xff0c;特别是为了应对 Google Gemini 3 等先进模…

作者头像 李华
网站建设 2026/5/30 7:45:51

3000亿参数降维打击:ERNIE 4.5用2Bits量化重构企业AI经济学

3000亿参数降维打击&#xff1a;ERNIE 4.5用2Bits量化重构企业AI经济学 【免费下载链接】ERNIE-4.5-300B-A47B-2Bits-TP4-Paddle 项目地址: https://ai.gitcode.com/hf_mirrors/baidu/ERNIE-4.5-300B-A47B-2Bits-TP4-Paddle 导语 百度ERNIE 4.5系列大模型以3000亿总参…

作者头像 李华
网站建设 2026/5/21 5:48:05

deepseek技术总结

dentify the entity: DeepSeek (月之暗面). Identify the core task: Summarize its core technical advantages in ~1000 characters. Recall/Search information about DeepSeek: What is it known for? What are its stated goals or technical focuses? What it is: A pr…

作者头像 李华
网站建设 2026/5/25 22:10:57

66、Linux系统脚本编写、邮件配置、数据库使用及安全设置指南

Linux系统脚本编写、邮件配置、数据库使用及安全设置指南 1. 环境变量与脚本编写 在Linux系统中,环境变量扮演着重要角色。以下是一些关键环境变量及其作用: - PS1 :该环境变量包含各种格式化代码和文本,用于设置主命令提示符。例如,你可以通过设置PS1让命令提示符显…

作者头像 李华
网站建设 2026/5/23 0:17:40

高效赋能业务:B端产品表格设计要素与最佳实践解析

在B端产品设计中&#xff0c;表格是展示结构化数据的核心组件&#xff0c;承担着高效呈现信息、辅助用户决策的关键作用。面对大量数据&#xff0c;优秀的表格设计能提升可读性和操作效率&#xff0c;直接影响工作效能。 表格设计的核心价值与常见挑战 表格能以紧凑形式清晰展示…

作者头像 李华