- tensor和variable的区别
Variable与Tensor没有本质不同,唯一不同点在于Variable可以自动求导。Variable是对Tensor的一个封装,操作和Tensor是一样的,但是每个Variable都有三个属性,Varibale的Tensor本身的.data,对应Tensor的梯度.grad,以及这个Variable是通过什么方式得到的.grad_fn。
-
计算图
-
动态图机制
3.1. 一次forward过程将有多个Function连接各个Variable,Function输出的Variable将保存该Function的引用(即.creator),从而组成计算图。
3.2. 在backward时,将利用生成的计算图,根据求导的链式法则得到每个Variable的梯度值。
- 对于不同维度数张量反向求导不同点
.backward()默认为.backward(torch.FloatTensor([1]))。但是对于高维张量进行反向求导时,需要传入参数额外注明数据维度尺寸。