pytorch中的register_buffer

复制代码
今天在一个模型的init中遇到了self.register_buffer(‘running_mean’, torch.zeros(num_features))

register_buffer(self, name, tensor)是一个PyTorch中的方法,它的作用是向模块(module)中添加一个持久的缓冲区(buffer)

缓冲区是一种不被视为模型参数(model parameter)的张量(tensor),它不会在训练过程中更新梯度(gradient),但是会作为模块的状态(state)被保存和迁移

通常,缓冲区用于存储一些与模型相关但不需要学习的量,例如BatchNorm层的running_mean和running_var,它们是根据数据的统计信息计算得到的

缓冲区可以通过给定的名称作为属性(attribute)被访问,例如self.running_mean

参数name是一个字符串,表示缓冲区的名称。通过这个名称,可以从模块中获取缓冲区。

参数tensor是一个张量,表示缓冲区的初始值。当模块被创建时,缓冲区会被赋值为这个张量。

示例中,使用self.register_buffer('running_mean', torch.zeros(num_features))向模块中添加了一个名为running_mean的缓冲区,它的初始值是一个全零的张量,维度为num_features

缓冲区的创建和销毁是在什么时候?

相关推荐
欣欣之王来了3 分钟前
AI合规学习:核心知识点梳理与学习路径规划
人工智能
二川bro10 分钟前
Playwright MCP浏览器自动化实战,AI直接操控浏览器
人工智能
虞七月18 分钟前
2026企业AI办公工具选型完全指南
人工智能·ai编程
一次旅行29 分钟前
2026‑09‑16 AI产业深度解读|GPT‑5.5即将下线迁移、AI安全路线大辩论、Perplexity自研数据库大幅降本
人工智能·安全·开源
llilian_1631 分钟前
北斗授时卡同步解决方案 gnss授时卡 计算机时间同步板卡
大数据·网络·人工智能·功能测试·51单片机
小星星_202632 分钟前
16 万行代码是怎么“跑”出来的?
人工智能·全栈
Vicky_time34 分钟前
跨境物流系统架构:美国海外仓与FBA中转海外仓选型技术方案评测
网络·人工智能
乔氪智造36 分钟前
模型开源了,能跑的人却越来越少
人工智能
Ticnix36 分钟前
多租户 RAG:让每个用户只检索到自己的知识库
后端·python·agent
老马识码36 分钟前
什么是 AI Native 公司(ANC):从「用了 AI」到「长成 AI」
人工智能