文章目录
1. 动态计算图简介
PyTorch中的动态计算图是指在PyTorch框架中,计算图是动态构建的
。这意味着在每次前向传播
过程中,计算图都会重新构建
。与静态计算图不同,动态计算图允许用户在运行时
动态地定义、修改和调整
计算图,而无需预先定义完整的计算图结构。
Pytorch的计算图由节点
和边
组成,节点
表示张量或者Function
,边
表示张量和Function之间的依赖关系
。
解释:Function实际上就是 Pytorch中各种对张量操作的函数
Pytorch中的计算图是动态图。这里的动态主要有两重含义。
第一层含义是:计算图的正向传播是立即执行的。无需等待完整的计算图创建完毕,每条语句都会在计算图中动态添加节点和边,并立即执行正向传播得到计算结果,如下图所示:
第二层含义是:计算图在反向传播后立即销毁。下次调用需要重新构建计算图。如果在程序中使用了backward方法执行了反向传播,或者利用torch.autograd.grad方法计