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 @ 2023-03-10 20:47  sqsq  阅读(15)  评论(0编辑  收藏  举报