pytorch nn.Parameter self.register_parameter() 区别

三、关键区别与底层逻辑

  1. 注册逻辑:隐式 vs 显式
    nn.Parameter 赋值时:
    PyTorch 的 nn.Module 会通过 setattr 钩子函数检测到赋值的是 nn.Parameter 实例,自动调用 self.register_parameter(name, value) 完成注册。
    self.register_parameter():
    绕开隐式钩子,手动显式将参数注册到模块的 _parameters 有序字典中(模块的所有参数都存在这里)。
  2. 对 None 的处理
    nn.Parameter:不能直接赋值 None(会报错,因为 nn.Parameter 必须包裹张量);
    self.register_parameter():支持传入 None 作为参数值,此时该参数名不会被加入 _parameters,也不会出现在 parameters() 列表中(如上面的 bias 案例)。
  3. 动态性:灵活注册
    nn.Parameter 赋值是 "静态" 的(定义时固定);
    self.register_parameter() 可在运行时动态注册(比如根据条件、循环注册多个参数):
相关推荐
2601_9623815811 分钟前
ArcGIS+Python+AI赋能高标准农田建设项目审计提质增效
python·arcgis·ai·高标准农田审计·大数据审计
昵称画13 分钟前
POC验证怎么设计用例?不走过程的实操要点
大数据·数据库·人工智能·低代码·excel
2601_9672127215 分钟前
新一代电源轨道系统技术甄别维度与行业技术路线分析
大数据·网络·人工智能
Lucas_coding19 分钟前
【Codex Remote】 Codex App通过SSH连接远程Linux开发环境
人工智能
EQUINOX120 分钟前
【论文精读】| MiniGPT-4精读
论文阅读·人工智能·深度学习
rust&python23 分钟前
课程表的归一化处理
python·程序人生·信息可视化
赖赖-24 分钟前
化工车间定制一体机案例:从需求到量产的完整技术拆解
人工智能·电脑·硬件架构·边缘计算
无念而悲26 分钟前
codex可以在cmd终端打开,无法在powershell终端打开
人工智能·codex
新知图书28 分钟前
7.4 基于智能体规划的成长指导
人工智能·智能体
X54先生(人文科技)31 分钟前
《元创力》卷宗 3.5《退场不是退出——碳硅协同驾驶原则的深层推导》
人工智能·深度学习·开源·ai写作·零知识证明