Sergio_Tian 2022-06-15 15:18 采纳率: 100%
浏览 165
已结题

pytorch报错优化器参数为空列表

问题遇到的现象和发生背景

我按照书上教程用python中的pytorch框架写了一个神经网络代码,但是一直报错优化器参数为空列表,代码和书上的一模一样,不知道哪里出来问题,希望各位能帮帮忙,代码和报错如下:

import numpy as np
import matplotlib.pyplot as plt
import torch
import torch.nn as nn
# 数据准备
x = torch.unsqueeze(torch.linspace(-np.pi,np.pi,100),dim=1)
y = torch.sin(x) + 0.5 * torch.rand(x.size())

# 构建网络
class Net(nn.Module):
    def __int__(self):
        super(Net,self).__init__()
        self.predict = nn.Sequential(
            nn.Linear(1,10),
            nn.ReLU(),
            nn.Linear(10,1)
        )
    def forward(self,x):
        prediction = self.predict(x)
        return prediction

# 设置优化器和损失函数
net = Net()
optimizer = torch.optim.SGD(net.parameters(),lr=0.05)
loss_function = nn.MSELoss
plt.ion()
# 训练网络
for epoch in range(1000):
    out = net(x)
    loss = loss_function(out,y)
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    if epoch % 25 == 0:
        plt.cla()
        plt.scatter(x,y)
        plt.plot(x,out.data.numpy,c="r",lw=5)
        plt.text(0.5,0,f"loss={loss}",fontdict={"size":20,"color":"red"})
        plt.pause(0.1)
    plt.show()
plt.ioff()
plt.show()

运行结果及报错内容

Traceback (most recent call last):
  File "E:\PythonLearning\nn_regression.py", line 36, in <module>
    optimizer = torch.optim.SGD(net.parameters(),lr=0.05)
  File "D:\ProgramData\Anaconda3\lib\site-packages\torch\optim\sgd.py", line 101, in __init__
    super(SGD, self).__init__(params, defaults)
  File "D:\ProgramData\Anaconda3\lib\site-packages\torch\optim\optimizer.py", line 49, in __init__
    raise ValueError("optimizer got an empty parameter list")
ValueError: optimizer got an empty parameter list

谢谢大家

  • 写回答

1条回答 默认 最新

  • SmallAntJ 2022-06-16 18:29
    关注

    因为第11行把__init__写成了__int__,所以Net没有正确实例化。
    另外还有两处少了括号:
    第25行要写成

    loss_function = nn.MSELoss()
    

    第37行要写成

    plt.plot(x,out.data.numpy(),c="r",lw=5)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月24日
  • 已采纳回答 6月16日
  • 赞助了问题酬金10元 6月16日
  • 创建了问题 6月15日

悬赏问题

  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题
  • ¥15 pic16F877a单片机的外部触发中断程序仿真失效
  • ¥15 Matlab插值拟合差分微分规划图论
  • ¥15 keil5 target not created
  • ¥15 C/C++数据与算法请教
  • ¥15 怎么找志同道合的伙伴
  • ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
  • ¥50 爬虫预算充足,跪巨佬
  • ¥15 滑块验证码拖动问题悬赏