变量 (Variable)(已经和tensor合并为一类)

什么是 Variable

Tensor是Pytorch的一个完美组件(可以生成高维数组),但是要构建神经网络还是远远不够的,我们需要能够计算图的Tensor,那就是Variable。Variable是对Tensor的一个封装,操作和Tensor是一样的,但是每个Variable都有三个属性,Varibale的Tensor本身的.data,对应Tensor的梯度.grad,以及这个Variable是通过什么方式得到的.grad_fn。

Variable 计算, 梯度

import torch
from torch.autograd import Variable

x_tensor=torch.randn(10,5)
y_tensor=torch.randn(10,5)
# 将 tensor 变成 Variable
x=Variable(x_tensor,requires_grad=True)# 默认 Variable 是不需要求梯度的,
# 所以我们用这个方式申明需要对其进行求梯度
y=Variable(y_tensor,requires_grad=True)
z = torch.sum(x + y)


print(z.data)# z 中的 tensor 数值
print(z.grad_fn)#通过grad_fn知道了其是通过 Sum 这种方式得到的

# 求 x 和 y 的梯度
z.backward()# 模拟z 的误差反向传递

print(x.grad)
print(y.grad)
#通过.grad我们得到了 x 和 y 的梯度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值