自动梯度autograd

本文介绍了在PyTorch中如何利用autograd包的Variable类进行自动梯度计算。通过设置requires_grad参数,可以控制变量是否参与梯度计算。在模型训练过程中,调用loss.backward()进行反向传播,计算各参数节点的梯度,并在每次迭代后清零梯度以避免梯度累计误差。
摘要由CSDN通过智能技术生成
import torch
from torch.autograd import Variable

batch_n = 100
input_data = 1000
hidden_layer = 100
output_data = 10

完成自动梯度需要用到torch.autograd包中的Variable类对我们定义的Tensor数据类型变量进行封装,
x=Variable(torch.randn(batch_n,input_data),requires_grad=False) 若requires_grads的值为False,那么表示该变量在进行自动梯度计算的过程中不会保留梯度值
我们将x,y的requies_grad值设为False,因为这两个变量并不是我们模型需要优化的参数
而两个权重w1和w2的requires_grad参数的值为True
在封装后,计算图中的各个节点就是一个Variable对象,这样才能应用自动梯度的功能 ‘’’

x = Variable(torch.randn(batch_n, input_data), requires_grad=False)
y = Variable(torch.randn(batch_n, output_data), requires_grad=False)

w1 = Variable(torch.randn
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值