pytorch入门到放弃2:Variable

29 篇文章 2 订阅
16 篇文章 2 订阅

Variable,就是变量的意思,是神经网络计算图里特有的一个概念(在numpy里没有变量的概念),Variable提供了自动求导的功能。

Variable和Tensor本质上没有区别,不过Variable会被放到一个计算图中,然后进行前向传播、反向传播、自动求导。

Variable是在torch.autograd.Variable中,要将一个tensor 的数据arr转化为Variable很简单,只需要通过Variable(arr)即可。

 

如图,Variable有三个比较重要的组成属性:data, grad, grad_fn。通过data可以取出Variable里的tensor数值,grad_fn表示的是得到这个Variable的操作,比如通过加减还是乘除来得到的,grad是这个Variable的反响传播梯度。

通过代码来具体说明一下:

import torch
from torch.autograd import Variable

x = Variable(torch.Tensor([1]), requires_grad=True)
w = Variable(torch.Tensor([2]), requires_grad=True)
b = Variable(torch.Tensor([3]), requires_grad=True)

y = w * x + b
y.backward()
print(x.grad)
print(w.grad)
print(b.grad)


# output
# tensor([2.])
# tensor([1.])
# tensor([1.])

构建Variable时,要注意传入一个参数requires_grad=True,这个参数表示是否对这个变量求梯度,默认的是False,也就是不对这个变量求梯度,这里希望得到这些变量的梯度,所以传入这个参数。

上面代码中的y.backward()就是所谓的自动求导。

 

创作不易,如果您觉的有用,可以来点赞助,一百两百不嫌多,一毛两毛不嫌少。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值