pytorch动态图与静态图
pytorch 动态图与静态图
动态图初步推导
- 计算图是用来描述运算的有向无环图
- 计算图有两个主要元素:结点(Node)和边(Edge)
- 结点表示数据 ,如向量、矩阵、张量
- 边表示运算 ,如加减乘除卷积等
上图是用计算图表示:y=(x+w)*(w+1)
其中a=x+w b=w+1
Pytorch在计算的时候,就会把计算过程用上面那样的动态图存储起来。现在我们计算一下y关于w的梯度:
(上面的计算中,w=1,x=2)
现在我们用Pytorch的代码来实现这个过程:
import torch
x = torch.tensor([1.],requires_grad=True)
w = torch.tensor([2.],requires_grad=True)
a = x*w
b = w+1
y = a*b
y.backward