第一周、计算图与动态图机制

一、计算图

1.1定义

用来描述运算的有向无环图,主要元素:结点和边
结点:数据,如向量,矩阵,张量。
边:运算,如加减乘除卷积等

1.2表示

   用计算图表示: y=(x+w)*(w+1)
            a=x+w   b=w+1
            y=a+b     

在这里插入图片描述
计算梯度下降

在这里插入图片描述

1.3函数

在这里插入图片描述

叶子结点:用户创建的结点称为叶子结点
grad:梯度,只有叶子结点有梯度
is_leaf:张量是否为叶子结点
grad_ fn:记录创建该张量时所用的方法(函数)
import torch

#注:要计算梯度必须为float类型
w = torch.tensor([1,],requires_grad=True,dtype=float)
x = torch.tensor([2,],requires_grad=True,dtype=float)

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

y.backward()
print("计算图与梯度求导:",w.grad)

#查看叶子结点
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)

#查看使用的函数 grad_fn
print("grad_fn:\n",w.grad_fn,x.grad_fn,a.grad_fn,b.grad_fn,y.grad_fn)


输出:计算图与梯度求导: tensor([5.])
is leaf:True True False False False
gradient: tensor([5.]) tensor([2.]) tensor([2.]) None None
grad_fn:None None Add Add MulB

二、计算图动态机制

2.1 动态图 vs 静态图

动态图:运算与搭建同时进行灵活易调节(pytorch)
静态图:先搭建图,后运算高效不灵活(tensorflow)
eg:旅游,静态图就是跟团,动态就是自由行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值