Variable变量
part1
import torch
from torch.autograd import Variable
tensor=torch.FloatTensor([[1,2],[3,4]])
variable=Variable(tensor, requires_grad=True)
print(tensor)
print(variable)
part2
import torch
from torch.autograd import Variable
tensor=torch.FloatTensor([[1,2],[3,4]])
variable=Variable(tensor, requires_grad=True)
t_out=torch.mean(tensor*tensor) #x^2
v_out=torch.mean(variable*variable)
#结果没什么差别 但是在反向传播差别很大。Tensor不可以进行反向传播
print(t_out)
print(v_out)
v_out.backward()
#v_out=1/4*sum(var*var)
#d(v_out)/d(var)=1/4*2*variable=variable/2
print(variable.grad)
part3
print(variable)
print(variable.data)
print(variable.data.numpy())
将variable转化成numpy的形式,不能直接variable.numpy()。需要先.data()转化成tensor的形式
正确写法为:variable.data.numpy()