穆穆青风至 2022-10-24 15:49 采纳率: 97.4%
浏览 26
已结题

实现pytorch时出现空参数问题


import torch
import torch.nn as nn
import numpy as np

x_train = [i for i in range(10)]
x_train = np.array(x_train, dtype=np.float32)
x_train.reshape(-1, 1)
y_train = [2 * i + 1 for i in range(10)]
y_train = np.array(y_train, dtype=np.float32)
y_train.reshape(-1, 1)


class MyModule(nn.Module):
    def __int__(self, input_dim, output_dim):
        super(MyModule, self).__int__()
        self.linear = nn.Linear(1, 1)

    def forward(self, x):
        return self.linear(x)


# 定义网络结果,损失函数,优化器
if torch.cuda.is_available():
    model = MyModule().cuda()
else:
    model = MyModule()
lea = 0.0001
optimizer = torch.optim.SGD(model.parameters(), lr=lea)
criterion = nn.MSELoss()
epochs = 10
for epoch in range(epochs):
    optimizer.zero_grad()
    if torch.cuda.is_available():
        inputs = torch.from_numpy(x_train).cuda()
        labels = torch.from_numpy(y_train).cuda()
    else:
        inputs = torch.from_numpy(x_train)
        labels = torch.from_numpy(y_train)
    outs = model(x_train)
    loss = criterion(labels, y_train)
    loss.backward()
    optimizer.step()
    print('epoch {}\tloss {}'.format(epoch, loss))


pytorch版本 1.12.1+cu116
代码如上,优化器那行报错了,如下。
ValueError: optimizer got an empty parameter list

  • 写回答

1条回答 默认 最新

  • 爱晚乏客游 2022-10-24 16:31
    关注

    img


    int是什么鬼?改成__init__,不然你都没有初始化model,导致你的model就是空的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 修改了问题 10月24日
  • 创建了问题 10月24日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作