新人求助:报错module 'torch.optim' has no attribute 'zero_grad'怎么解决?

大家好!新手提问,新手刚开始学Python和PyTorch,看的是《Pthon深度学习:基于PyTorch》这本书,然后在复制书里第六章的代码时报错,网上也没有找到相应的解决办法,希望大家可以帮我看一下是什么问题
代码如下:

for epoch in range(10):  

    running_loss = 0.0
    for i, data in enumerate(trainloader, 0):
        # 获取训练数据
        inputs, labels = data
        inputs, labels = inputs.to(device), labels.to(device)

        # 权重参数梯度清零
        optimizer.zero_grad()

        # 正向及反向传播
        outputs = net(inputs)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()

        # 显示损失值
        running_loss += loss.item()
        if i % 2000 == 1999:    # print every 2000 mini-batches
            print('[%d, %5d] loss: %.3f' %(epoch + 1, i + 1, running_loss / 2000))
            running_loss = 0.0

print('Finished Training')

然后报错是:

AttributeError                            Traceback (most recent call last)
<ipython-input-27-d6e6cbbe55da> in <module>
      8 
      9         # 权重参数梯度清零
---> 10         optimizer.zero_grad()
     11 
     12         # 正向及反向传播

AttributeError: module 'torch.optim' has no attribute 'zero_grad'
   看了网上相关的问题,自己检查的时候没有发现有用torch.py命名的文件夹,但是在Anaconda3\Lib\site-packages\torch\optim这个文件夹里没有找到zero_grad这个文件不知道是不是问题出在了这里。
        Python版本是3.7.6  Torch版本是1.5.1

请问你的问题解决了嘛?

同问

新版的pytorch的api调整了
https://blog.csdn.net/jacke121/article/details/80597759