1、Variable是torch.autograd中很重要的类。它用来包装Tensor,将Tensor转换为Variable之后,可以装载梯度信息。pytorch的一个重要特点就是动态计算图,计算图中每一个节点代表一个变量,变量间建立运算关系并且可以修改,而不像Tensorflow中的计算图是固定不可变的。.data——获得该节点的值,即Tensor类型的值.grad——获得该节点处的梯度信息
2、Variable的参数为“requires_grad”和“grad_fn”:(1)requires_grad的值为:True和False,True代表tensor变量需要计算梯度,False代表不需要。默认值为False。(2)grad_fn的值该变量是否是一个计算结果,即该变量是不是一个函数的输出值。若是,则grad_fn返回一个与该函数相关的对象,否则是None。
3、神经网络计算梯度一个复杂的实例,此实例可以体现出梯度计算过程的计算图:
4、变量out处执行.backward()计算梯度,由梯度计算的链式法则算到所有的结果变量(graph leaves),这个图中只有一个x。然后在创建变量处执行.grad,获得结果变量out关于创建变量x的梯度。