In-Place操作及onnx导出

本文介绍了PyTorch中的In-Place操作,这种操作能节省GPU显存但可能导致梯度计算问题。文章提醒在使用In-Place操作时要谨慎,特别是在导出ONNX模型时应避免,因为这可能引入scatterND等不被广泛支持的算子。建议使用非In-Place操作以保证模型移植性和兼容性。
摘要由CSDN通过智能技术生成

本文只做本人笔记记录所用!

一、概念介绍

In-place 操作:被称为就地操作和原地操作

pytorch中原地操作的后缀为_,如.add_()或.scatter_(),

就地操作:是直接更改给定Tensor的内容而不进行复制的操作,即不会为变量分配新的内存(不分配新的对象)。Python操作类似+=或*=也是就地操作。

当然有In-Place就有out-of-place与之对应。

  • 每个 in-place 操作实际上都需要重写计算图的实现。out-of-place只是分配新对象并保留对旧计算图的引用,而 in-place 操作则需要将所有输入的创建更改为代表此操作的函数。

二、介绍

深度学习降低显存使用量,有几种简单的方法可以减少模型占用的GPU显存

(1)更改模型的结构,比如做轻量化模型的设计,结构重参等方法,可以有效降低模型参数量

(2)模

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

曙光_deeplove

你的鼓励是我努力的最大源泉

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

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

打赏作者

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

抵扣说明:

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

余额充值