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() 可在运行时动态注册(比如根据条件、循环注册多个参数):
相关推荐
中烟创新3 分钟前
中烟创新×某电力公司 | AI大模型重构电力合规反事故演习
人工智能·重构
电科_银尘4 分钟前
【深度学习项目实战·15】小样本图像分类:迁移学习识别蚂蚁与蜜蜂
深度学习·分类·迁移学习
龙腾AI白云6 分钟前
仿真到现实(Sim-to-Real)迁移:跨越仿真与现实鸿沟
数据库·机器学习·plotly·知识图谱·tornado
benchmark_cc28 分钟前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
陈嘿萌42 分钟前
TIP 2026 | 不再混成一张! RealFusion从模态不变性重想图像融合
图像处理·人工智能·深度学习·计算机视觉·学术研究与理论基础
正在走向自律2 小时前
AI Agent 落地这一年:从“能跑起来”到“敢放出去”
大数据·人工智能·ai agent·智能体·mcp·a2a
蜗牛一步步往上爬2 小时前
第十六章 C++语言在深度学习中的应用
开发语言·c++·深度学习
不惑_2 小时前
理解启元,从论文开始,RT-2 55B 只有 1~3Hz,OpenVLA 7B 反而高 16.5%——三代 VLA 论文解读,动作表示才是分水岭
人工智能·论文解读
IT_陈寒2 小时前
Redis内存暴涨,没想到是AOF重写捣的鬼
前端·人工智能·后端
楚山之石2 小时前
【JCO】mpMRI 先行替代 TURBT 初始分期:BladderPath 随机试验让 MIBC 患者提前 45 天得到正确治疗
人工智能·学习·mri·医学影像