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

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

相关推荐
老衲の少女心16 小时前
【AI项目】用 LangGraph 构建智能批改与解题系统:条件路由、SSE流式输出Agent工作流实践
人工智能
RobinDevNotes16 小时前
K8s+Megatron-LM+vLLM打通超大模型训练全链路
人工智能·kubernetes
资源大佬星 课it16 小时前
人工智能机器学习系统班,人工智能深度学习系统班
人工智能
连线Insight16 小时前
从谷歌到百度,AI正在打开搜索增长空间
人工智能
DevNo16 小时前
旅行素材太多不会剪?三款手机AI工具实测体验
人工智能
TMT星球16 小时前
伽利略机器人亮相WRC 2026,突破形态局限发布“陆行具身系统”Galileo X
大数据·人工智能·机器人
是大乔家的16 小时前
AI漫剧用什么软件制作?知漫剧批量生成连载实战分享
人工智能
Buke..16 小时前
【APP 逆向】哔哩哔哩 sign 参数逆向(上):Frida 反调试绕过与 unidbg 调用
java·开发语言·爬虫·python·安卓
IT小白杨16 小时前
当MCP遇上指纹浏览器:AI自然语言驱动隔离环境的实践思路
人工智能·经验分享·selenium·安全·业界资讯·指纹浏览器
fthux16 小时前
被主流遮住的世界:那些不常见却值得认识的编程语言
人工智能·ai·开源·github