【内涵】深度学习中的三种变量及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,如何选择还是要知道,因此总结一下这个小点,作为自己的笔记。

相关推荐
渡我白衣30 分钟前
深入理解 Transformer:Transformer 究竟是什么?
java·linux·开发语言·c++·人工智能·深度学习·transformer
咖啡星人k1 小时前
2026 AI 自动化测试:让 AI 帮你写用例、跑测试、修 Bug(MonkeyCode 云端实战)
人工智能·功能测试·单元测试·测试用例·bug·集成测试
Elastic 中国社区官方博客7 小时前
搜索倍增器:推动收入、生产力和 AI 实现规模化
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
wjkjpcba7 小时前
机器人控制板PCBA怎么加工?从SMT贴片到BGA焊接解析机器人电子制造工艺
大数据·人工智能
青 春 记 忆8 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
GlueNa2SiO38 小时前
03-Flask模板引擎Jinja2详解
笔记·python·flask
小猪妈咪爱学法8 小时前
欧盟最新发布《AI数字综合法案(Digital Omnibus‑on‑AI,AI综合修订法案)
人工智能·网络安全
ZGIAI8 小时前
ZGI Workflow 变量池:接住节点输出
人工智能·架构
梵构广告8 小时前
提升品牌识别度有哪些方法?
人工智能
ZGIAI8 小时前
ZGI 记忆隔离:多人共用不串号
人工智能·架构