计算图
计算图是用于描述运算的有向无环图。
计算图有两个主要元素:结点、边
结点表示数据(向量、矩阵、张量)
边表示运算
叶子结点:用户创建的结点
is_leaf:指示张量是否为叶子节点
requires_grad :是否需要梯度
grad_fn :记录创建该张量时所用的方法
grad :输出该张量的梯度
.backward() :反向求导
当最终输出Tensor为一个标量(一维张量)时,不需要为backward() 指定参数。但是如果它有更多的元素,则需要指定一个gradient参数,它是形状匹配的张量。
动态图/静态图
动态图:运算与搭建同时进行(灵活易于调节)
静态图:先搭建图,后进行运算(高效,不灵活)
autograd
torch.autograd.backward(
tensors,
grad_tensors=None,
retain_graph=None,
create_graph=False)
tensors: 用于求导的张量
retain_graph :保存计算图
create_graph : 创建导数计算图,用于高阶求导
grad_tensors:多梯度权重