计算图(Computational Graph)
前言
在学习了张量的一系列操作后,我们知道深度学习就是对张量进行计算和操作。随着张量种类和计算的增多,会导致各种各样想不到的问题,比如我们多个操作之间该并行还是顺序执行;如何协同各种底层设备以及如何避免各种冗余的操作等等,这些问题都会影响到我们的运算效率,甚至都会引入到一些不必要的bug,而计算图就是为了解决这一个问题而产生的。
-
计算图是用来描述运算的有向无环图。
-
计算图有两个主要元素:节点(Node)和边(Edge),节点表示数据,如向量、矩阵;张量表示运算,如加减乘除卷积等
-
用计算图表示
y = (x+w)*(w+1)
将上式进行拆分a=x+w; b=w+1; y=a*b
叶子节点
用户创建的节点称为叶子节点,如x和w
is_leaf:指示张量是否为叶子节点
代码查看叶子节点和梯度
import torch
w = torch.tensor([1.], requires_grad=True)
x = torch.tensor([