You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch如何将单个nn.Parameter张量添加到优化器中训练

错误原因

parameters()是nn.Module子类才具备的方法,用于返回模块内部包含的所有可训练参数迭代器:

  • 你之前调用的model.rgb_layers[0]是nn.Conv2d实例,属于nn.Module子类,因此可以正常调用parameters()方法
  • self.inital_value本身就是单个nn.Parameter实例,不属于nn.Module子类,因此不存在parameters()方法,直接调用会触发报错

解决方案

直接将该参数放入列表这类可迭代对象中,传给优化器即可:

opt = optim.RMSprop([model.inital_value], lr = lr)

如果需要同时训练多个独立参数/不同模块的参数,直接在列表中拼接对应参数即可,示例如下:

# 同时训练initial_value和rgb_layers第一层的参数
opt = optim.RMSprop([model.inital_value] + list(model.rgb_layers[0].parameters()), lr = lr)

内容的提问来源于stack exchange,提问作者Moran Reznik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:48:02