autograd

x.requires_grad = True
#Variable 正式合并入Tensor, Variable 本来实现的自动微分功能,Tensor就能支持。读者还是可以使用Variable(tensor), 但是这个操作其实什么都没做。建议读者以后直接使用tensor

output=net(input)
criterion=nn.MSELoss()
loss=criterion(output,target)
net.zero_grad() # 把net中所有可学习参数的梯度清零
print(‘反向传播之前 conv1.bias的梯度’)
print(net.conv1.bias.grad)
loss.backward()
print(‘反向传播之后 conv1.bias的梯度’)
print(net.conv1.bias.grad)

t.set_num_threads(8)
for epoch in range(2):
running_loss = 0.0
for i, data in enumerate(trainloader, 0):
# 输入数据
inputs, labels = data
# 梯度清零
optimizer.zero_grad()
# forward + backward
outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
# 更新参数
optimizer.step()

    # 打印log信息
    # loss 是一个scalar,需要使用loss.item()来获取数值,不能使用loss[0]
    running_loss += loss.item()
    if i % 2000 == 1999: # 每2000个batch打印一下训练状态
        print('[%d, %5d] loss: %.3f' \
              % (epoch+1, i+1, running_loss / 2000))
        running_loss = 0.0

print(‘Finished Training’)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值