一、构建神经网络的要素
1、Tensor
在PyTorch中,最核心的数据结构就是Tensor了,可以认为Tensor与Numpy中的ndarrays非常类似,但是Tensor可以使用GPU加速而ndarrays不可以。我们在PyTorch下可以使用如下命令来进行GPU运算:
if torch.cuda.is_available():
x = x.cuda()
y = y.cuda()
print(x+y)
2、Variable
Variable(简单理解就是Variable是对Tensor的一种封装)。其操作与Tensor是一样的,但是每个Variable都包含了三个属性(data、grad以及creator):Variable中的Tensor本身(通过.data来进行访问)、对应Tensor的梯度(通过.grad进行访问)以及创建这个Variable的Function的
引用(通过.grad_fn进行访问),该引用可用于回溯整个创建链路,如果是用户自己创建Variable,则其grad_fn为None,如下图所示。