大家好!新手提问,新手刚开始学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