一、什么是叶子节点
PyTorch中的张量tensor有一个属性是is_leaf,当is_leaf为True时,改tensor是叶子张量,也叫叶子节点。
二、叶子节点的作用
PyTorch有自动求导的功能,
当requires_grad=True时,PyTorch会自动记录运算过程,缓存运算中的中间参数,为自动求导做准备。
但是只有is_leaf=True和requires_grad=True同时满足时,才可以获得该节点的导数值。
三、什么样的节点为叶子节点
按照惯例:
1、所有requires_grad为False的张量(Tensor) 都为叶张量( leaf Tensor);
2、requires_grad为True的张量(Tensor),如果他们是由用户创建的,则它们是叶张量(leaf Tensor)。这意味着它们不是运算的结果,因此grad_fn为None。
>>> a = torch.rand(10, requires_grad=True)
>>> a.is_leaf
True
#a was created by user
>>> b = torch.rand(10, requires_grad<