PyTorch中Variable与Tensor

VariableTensor

tensor是PyTorch中的完美组件,高效的数据格式,但是构建神经网络还远远不够,我们需要能够构建计算图的tensor,这就是Variable。Variable是对tensor的封装,操作和tensor是一样的,但是每个Variable都有三个属性,Variable中的tensor本身.data,对应tensor的梯度.grad以及这个Variable是通过什么方式得到的.grad_fn,是由什么函数得到的张量,如果是自己创建的,则维度None.

# 通过下面这种方式导入 Variable
import torch
from torch.autograd import Variable

x_tensor = torch.randn(4, 5)
y_tensor = torch.randn(4, 5)

1.requires_grad

# 将 tensor 变成 Variable
x = Variable(x_tensor)
x
tensor([[ 0.6031, -0.6642,  1.0491, -0.5876,  0.6080],
        [ 0.9331, -1.8954,  1.2234,  0.1483,  1.0758],
        [-0.5292,  1.3870, -1.6189,  1.0741,  0.9438],
        [ 1.4417,  0.7225, -1.2392, -0.1838,  1.3174]])

默认Variable是不需要求梯度的,所以用这个方式申明需要对其进行求梯度

# requires_grad 申明需要对其进行求梯度
x = Variable(x_tensor, requires_grad=True) 
y = Variable(y_tensor, requires_grad=True)

 

posted @   sqsq  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2020-03-10 hdu 1576 A/B
2020-03-10 poj 2115 C Looooops
点击右上角即可分享
微信分享提示