欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PyTorch学习笔记(2)计算图

程序员文章站 2022-03-21 19:46:30
...

计算图

是用来描述运算的有向无环图
两个主要元素 结点Node 边 Edge
结点表示数据 向量 矩阵 张量
边表示运算 加减乘除卷积
使梯度求导更加方便

import torch

w = torch.tensor([1.],requires_grad=True)
x = torch.tensor([2.],requires_grad=True)

a = torch.add(w,x)
# 保存相应张量的梯度
a.retain_grad()
b = torch.add(w,1)
y = torch.mul(a,b)

y.backward()
print(w.grad)

# 叶子节点:用户创建的节点成为叶子节点 如X与W
# is_leaf 指示张量是否为叶子节点
print("is leaf:\n",w.is_leaf,x.is_leaf,a.is_leaf,b.is_leaf,y.is_leaf)

# 查看梯度
print("gradient:\n",w.grad,x.grad,a.grad,b.grad,y.grad)

根据计算图搭建方式,可以将计算图分为静态图和动态图
动态图 运算与搭建同时进行 灵活 易调节
静态图 先搭建 后运算 高效 不灵活