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() 可在运行时动态注册(比如根据条件、循环注册多个参数):
相关推荐
qq_124987075312 分钟前
基于Hadoop的信贷风险评估的数据可视化分析与预测系统的设计与实现(源码+论文+部署+安装)
大数据·人工智能·hadoop·分布式·信息可视化·毕业设计·计算机毕业设计
Coder_Boy_15 分钟前
TensorFlow小白科普
人工智能·深度学习·tensorflow·neo4j
全栈老石15 分钟前
Python 异步生存手册:给被 JS async/await 宠坏的全栈工程师
后端·python
L、21817 分钟前
CANN 中的图优化技术详解:如何让 AI 模型跑得更快、更省
人工智能
大模型玩家七七18 分钟前
梯度累积真的省显存吗?它换走的是什么成本
java·javascript·数据库·人工智能·深度学习
新缸中之脑20 分钟前
像画家一样编程
人工智能
tq108621 分钟前
心主神明:传统智慧如何启示AI的可靠之道
人工智能
梨落秋霜23 分钟前
Python入门篇【模块/包】
python
珠海西格电力科技25 分钟前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
新缸中之脑26 分钟前
“AI 裁员“神话
人工智能