Variable详解

Variable(变量)

目前官方已经弃用variable了,tensor可以直接设置requires_grad=True

来源: torch.autograd.Variable()

(一)特点

  • variable是一种可以不断变化的变量,符合反向传播,自动求导、参数更新的属性,除此之外和tensor没有本质区别。
  • 可通torch_data(torch_data) 进行tensor到Variable的转换
  • variable默认不被求导 (requires_grad属性默认为False)

(二)组成属性

  • data : 得到对象的tensor数值
  • grad : 得到反向传播梯度
  • requires_grad :是否需要求梯度

(三)代码展示

from torch.autograd import Variable  
  
x = Variable(torch.Tensor([3]), requires_grad=True)  
a = Variable(torch.Tensor([5]), requires_grad=True)  
bias = Variable(torch.Tensor([9]), requires_grad=True)  
c = Variable(torch.Tensor([12]), requires_grad=False) # 设置一个不需求导做对比  
# 构建一个计算图  
y = a * x + bias * c  # y = a * x + bias * c= 5 * 3 + 9 * 12  
# 反向传播  
y.backward()  # same as y.backward(torch.FloatTensor([i]))  
  
print(x.data, x.grad, x.requires_grad)  # tensor([3.]) tensor([5.]) True  
print(a.data, a.grad, a.requires_grad)  # tensor([5.]) tensor([3.]) True  
print(bias.data, bias.grad, bias.requires_grad)  # tensor([9.]) tensor([12.]) True  
print(c.data, c.grad, c.requires_grad)  # tensor([12.]) None False

猜你喜欢

转载自blog.csdn.net/m0_52910424/article/details/126942482
今日推荐