【内涵】深度学习中的三种变量及pytorch中对应的三种tensor

程序是对现实世界/需求的映射,pytorch也不例外。在深度学习领域中,一般所需要的三种变量及pytorch中对应的三种tensor总结如下:

  1. 不需要反向传播来更新,也不需要保存在模型的文件参数中:这种对应的就是普通的tensor, 例如模型的图片输入tensor和模型的标签tensor。

  2. 不需要反向传播来更新,但是需要保存在模型的文件参数中用于推理的时候加载:这种就对应nn.Module.buffer,最经典的如batch noarm层中的mean和std,这在训练的时候不是反向传播更新而是计算出来的,模型训练完成后,会保存在参数文件中,模型被加载推理的时候,可以被取到。另外,就是如果之前做过目标检测任务的话,有一篇经典的文章gfl, 它也用到了这种变量:

    复制代码
         self.register_buffer('project',
                              torch.linspace(0, self.reg_max, self.reg_max + 1))

这样的话,就会有一个project变量被保存在参数文件中。

  1. 需要反向传播,也需要保存在模型参数文件中用于推理的时候加载:这种就对应nn.Parameter。当然所有层的weights, bias都是这样的变量。另外一个例子,比如说vit论文中的可学习的一个cls token也是这种变量

    self.cls_token = nn.Parameter(torch.randn(num_cls_tokens, dim))

这种也不用记忆,尤其是大模型时代。但是一般想好自己的需要(是否反向传播,是否保存至模型参数文件中),这种如何prompt,如何选择还是要知道,因此总结一下这个小点,作为自己的笔记。

相关推荐
Shockang5 小时前
AI 编码智能体生产化工程
人工智能
天才测试猿6 小时前
2026软件测试面试八股文(含答案+文档)
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
jay神7 小时前
深度学习确定baseline之后怎么做改进?
人工智能·深度学习·yolo·计算机视觉·分类
acrel77 小时前
安科瑞Acrel-1000变电站综合自动化系统在合肥某新材料公司35kV综合自动化项目中的应用分析
大数据·人工智能
UWA7 小时前
隐藏视频变“常驻刺客”,VideoPlayer与“N/A”纹理该怎么查
人工智能·性能优化·音视频·memory·cpu·游戏开发
V哥AI增长7 小时前
小红书笔记在生成式AI引擎中的可见性机制解析:从抓取原理到GEO工程化实践
大数据·人工智能·笔记
ajassi20007 小时前
AI语音智能体开发日记(十二)GX8006 固件定制指南——从双唤醒词到 UART 音频传输
人工智能·ai·ai编程
大模型momo7 小时前
告别单体 Agent:多智能体设计模式(Multi-Agent Patterns)深度实战手册
人工智能·agent·multi-agent·多agent
张小凡vip7 小时前
python--爬虫--成熟的爬虫框架Scrapy
爬虫·python·scrapy
Pluchon7 小时前
Java个人综合项目——萌部落社区V2.0
java·python·spring·spring cloud·postman·idea