pytorch中的变量有三个属性,分别是data表示变量中的具体值, grad表示这个变量反向传播的梯度,这个的计算方式下面有专门的一个演示程序, grad_fn表示是通过什么操作得到这个变量的例如( 加减乘除、卷积、反置卷积)
其位于torch的autograd中
import torch
from torch.autograd import Variable
对比在pytorch中常用的单元tensor(张量),二者是可以相互转化的,区别在于tensor用于在CPU上计算,而Variable用于在GPU上。所以说这就是为什么pytorch加载图像的时候一般都会使用Variable变量。
附tensor,Variable,numpy.array的转化代码
#将numpy矩阵转换为Tensor
sub_ts = torch.from_numpy(sub_img) #sub_img为numpy类型
#将Tensor张量转化为numpy
sub_np1 = sub_ts.numpy() #sub_ts为tensor张量
#将numpy转换为Variable
sub_va = Variable(torch.from_numpy(sub_img))
#将Variable张量转化为numpy
sub_np2 = sub_va.data.numpy() #sub_va为Variable类型
#将Tensor张量转化为Variable
sub_var = Variable(sub_ts, requires_grad = True) #sub_ts为tensor