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() 可在运行时动态注册(比如根据条件、循环注册多个参数):
相关推荐
童话名剑25 分钟前
训练词嵌入(吴恩达深度学习笔记)
人工智能·深度学习·word2vec·词嵌入·负采样·嵌入矩阵·glove算法
桂花很香,旭很美1 小时前
智能体技术架构:从分类、选型到落地
人工智能·架构
HelloWorld__来都来了2 小时前
2026.1.30 本周学术科研热点TOP5
人工智能·科研
共享家95272 小时前
搭建 AI 聊天机器人:”我的人生我做主“
前端·javascript·css·python·pycharm·html·状态模式
aihuangwu2 小时前
豆包图表怎么导出
人工智能·ai·deepseek·ds随心转
Hgfdsaqwr2 小时前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
YMWM_2 小时前
深度学习中模型的推理和训练
人工智能·深度学习
中二病码农不会遇见C++学姐3 小时前
文明6-mod制作-游戏素材AI生成记录
人工智能·游戏
一晌小贪欢3 小时前
Python 测试利器:使用 pytest 高效编写和管理单元测试
python·单元测试·pytest·python3·python测试
小文数模3 小时前
2026年美赛数学建模C题完整参考论文(含模型和代码)
python·数学建模·matlab