pytroch中的Variable()介绍

个人理解
在pytorch中都是tensor进行计算的,神经网络在训练的过程中是不断更新参数的,也就需要反响传播,但是仅仅依靠tensor是不能达到反向传播的,这个时候,Variable变量,是一个可以变化的量,那么就可以反向传播了

  • requires_grad (指定该节点及依赖它的节点是否求导)
    variable默认是不需要被求导的,即requires_grad属性默认为False,如果某一个节点的requires_grad为True,那么所有依赖它的节点requires_grad都为True。
  • volatile (指定该节点及依赖它的节点是否不求导)
    variable的volatile属性默认为False,如果某一个variable的volatile属性被设为True,那么所有依赖它的节点volatile属性都为True。volatile属性为True的节点不会求导,volatile的优先级比requires_grad高。
  • retain_graph
    多次反向传播(多层监督)时,梯度是累加的。一般来说,单次反向传播后,计算图会free掉,也就是反向传播的中间缓存会被清空【这就是动态度的特点】。为进行多次反向传播需指定retain_graph=True来保存这些缓存。
  • backward()
    反向传播,求解Variable的梯度。放在中间缓存中。

猜你喜欢

转载自blog.csdn.net/xdg15294969271/article/details/121676099