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

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

相关推荐
youcans_3 小时前
【HALCON机器视觉实战】专栏介绍
图像处理·人工智能·计算机视觉·halcon
火山引擎开发者社区3 小时前
火山引擎 veRoCE 获权威认证:IANA 官方为 veRoCE 分配专属 UDP 端口号 4794
人工智能
飘落的数码折腾日记3 小时前
你的AI Agent可能正在“叛变“ | 5类真实威胁与四层防御
人工智能
放羊郎3 小时前
基于ORB-SLAM2算法的优化工作
人工智能·算法·计算机视觉
AI袋鼠帝4 小时前
字节的技术决心,都藏在这个动作里
人工智能
AI袋鼠帝4 小时前
企微又偷偷进化AI,并开始不对劲了..
人工智能
工业机器人销售服务4 小时前
2026 年,探索专业伯朗特机器人的奇妙世界
人工智能·机器人
摆烂大大王4 小时前
AI 日报|2026年5月9日:四部门力推AI与能源双向赋能,AI终端国标出台,中国大模型融资潮涌
人工智能
2301_809204704 小时前
JavaScript中严格模式use-strict对引擎解析的辅助.txt
jvm·数据库·python
萑澈4 小时前
编程能力强和多模态模型的模型后训练
人工智能·深度学习·机器学习