欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

计算图与动态图

发布时间:2025/4/5 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 计算图与动态图 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一、计算图

 

计算图主要是描述运算的有向无环图,计算图主要有两个部分:结点和边,节点可以表示数据,边表示数据的运算。

叶子结点: 用户创建的结点称为叶子结点

torch.Tensor: data、dtype、shape、device、requires_grad、grad、grad_fn、is_leaf

is_leaf: 指张量是否为叶子结点

grad_fn:  用来记录创建张量时所用的方法

 

二、动态图

 

动态图: 运算和搭建同时进行,主要特点为 灵活、易调节

静态图: 先搭建图,后进行运算,主要特点为 高效、不灵活

>>> import torch >>> w = torch.tensor([1.],requires_grad=True) >>> x = torch.tensor([3.],requires_grad=True) >>> a = torch.add(w,x) >>> b = torch.add(w,1) >>> y = torch.mul(a,b) >>> y.backward() >>> print(w.grad) tensor([6.]) >>> print("is_leaf:",w.is_leaf,x.is_leaf,a.is_leaf,b.is_leaf,y.is_leaf) is_leaf: True True False False False >>> print("gradient:",w.grad,x.grad,a.grad,b.grad,y.grad) gradient: tensor([6.]) tensor([2.]) None None None >>> print("grad_fn:",w.grad_fn,x.grad_fn,a.grad_fn,b.grad_fn,y.grad_fn) grad_fn: None None <AddBackward0 object at 0x106007f28> <AddBackward0 object at 0x106007c88> <MulBackward0 object at 0x106007c18>

 

 

 

 

 

 

 

 

 

 

 

 

总结

以上是生活随笔为你收集整理的计算图与动态图的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。