深度学习框架 动态图 VS 静态图

深度学习框架 动态图 VS 静态图

不管是动态图还是静态图,他们都是计算图,计算图是描述运算的有向无环图,计算图由节点和边构成,节点表示数据,可以是矩阵、向量、张量等,边表示运算,如加减乘除卷积等。

计算图的优点

让运算流的表达更加简单。

方便求导计算梯度。

 

 

上图表示 y = (w+x)*(w+1) 的计算图,如果需要计算y对w的导数,则需要反向从y找到所有到w的路径,每条路径上利用链式求导法则计算偏导数,并将所有路径的偏导数相加就可以得到y对w的导数。

叶子节点是用户创建的变量,如上图中的w和x,在pytorch中,为了节省内存,在梯度反向传播结束后,非叶子节点的梯度会被释放掉。

 动态图

动态图意味着计算图的构建和计算是同时发生的,这样就可以实时得到中间结果的值,使得调试更加容易,pytorch就是使用的动态图机制。

 

 静态图

静态图意味着计算图的构建和实际计算是分开进行的,在静态图中,需要先定义好整个计算流,再次运行的时就不需要重新构建计算图,因此其性能更加高效,tensorflow默认使用的是静态图机制。静态图的缺点在于,运算执行的过程(编译的过程中)代码的错误不容易发现,不能像动态图一样实时拿到中间的计算结果,对代码调试带来一定的麻烦。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值