【20天拿下Pytorch:Day 3】Pytorch的核心概念:动态计算图

本文深入探讨PyTorch的动态计算图,解释了正向传播的即时执行和反向传播后的销毁机制。介绍了计算图中的Function节点,强调了叶子节点和非叶子节点在反向传播中的角色,以及如何使用retain_grad和register_hook保留非叶子节点的梯度。此外,还展示了如何利用TensorBoard对计算图进行可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 动态计算图简介

PyTorch中的动态计算图是指在PyTorch框架中,计算图是动态构建的。这意味着在每次前向传播过程中,计算图都会重新构建。与静态计算图不同,动态计算图允许用户在运行时动态地定义、修改和调整计算图,而无需预先定义完整的计算图结构。

Pytorch的计算图由节点组成,节点表示张量或者Function表示张量和Function之间的依赖关系

解释:Function实际上就是 Pytorch中各种对张量操作的函数

Pytorch中的计算图是动态图。这里的动态主要有两重含义。

第一层含义是:计算图的正向传播是立即执行的。无需等待完整的计算图创建完毕,每条语句都会在计算图中动态添加节点和边,并立即执行正向传播得到计算结果,如下图所示:
在这里插入图片描述
第二层含义是:计算图在反向传播后立即销毁。下次调用需要重新构建计算图。如果在程序中使用了backward方法执行了反向传播,或者利用torch.autograd.grad方法计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若北辰

谢谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值