【Pytorch小知识】torch.roll()函数的用法及在Swin Transformer中的应用(详细易懂)

从小白到专家:DeepSeek 模型硬件配置完全指南 DeepSeek是由深度求索(DeepSeek)推出的一系列大语言模型,涵盖从轻量级到超大规模的不同版本。高效性:优化了推理和训练效率,适合多种应用场景。灵活性:支持从单机到分布式集群的部署方式。多场景适配:适用于文本生成、代码补全、对话系统等任务。为了充分发挥DeepSeek模型的性能,合理的硬件配置至关重要。以下是针对不同规模模型的具体硬件需求。 阅读详情
AI摘要

本文详细介绍了PyTorch中的torch.roll()函数及其应用场景,并提供了一个全面的大模型AI学习指南,涵盖从初阶应用到商业闭环的全过程。


文章目录
  • torch.roll()的官方文档
    • 函数形式及参数说明
    • 举个例子
  • torch.roll()的应用
    • 具体步骤

torch.roll()的官方文档

函数形式及参数说明

在这里插入图片描述
函数形式:torch.roll(input,shifts,dims=None)
参数解释:

  • input:输入张量
  • shifts:滚动的方向和长度,若为正,则向下滚动;若为负,则向上滚动。可是一个整数也可以是一个元组。(具体见下面例子)
  • dims:张量按什么维度滚动。以二维为例,0就是按行上下或者下上(shifts为负)滚动;1就是左右或者右左(shifts为负)。可以是整数或元组。

举个例子

下面我们通过官方给出的例子加以讲解。
在这里插入图片描述

  • x是一个定义好的4×2张量
  • torch.roll(x,1,0):shifts=1,代表正向(向下)滚动1格,dims=0代表按行滚动。于是,[1,2]就到了第二行,[7,8]就到了第一行。以此类推。
  • torch.roll(x,-1,0):shifs=-1,代表负向(向上)滚动1个,dims=0代表按行滚动。于是就有了与上一步相反的结果,每行都同步上移了一格。
  • torch.roll(x,shifts=(2,1),dims=(0,1)):元组形式传参,那就是先按行正向滚动2格,再按列正向(左右)滚动1格。见如下过程:

x是这样的4×2张量:
[ 1 2 3 4 5 6 7 8 ] \left[ \begin{matrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \\ 7 & 8 \\ \end{matrix} \right] ​1357​2468​ ​
shifts=2,dims=0后:
[ 5 6 7 8 1 2 3 4 ] \left[ \begin{matrix} 5 & 6 \\ 7 & 8 \\ 1 & 2 \\ 3 & 4 \\ \end{matrix} \right] ​5713​6824​ ​
shifts=1,dims=1后:
[ 6 5 8 7 2 1 4 3 ] \left[ \begin{matrix} 6 & 5 \\ 8 & 7 \\ 2 & 1 \\ 4 & 3 \\ \end{matrix} \right] ​6824​5713​ ​

torch.roll()的应用

Swin Transformer中的shifted window partition操作中更有效地计算自注意力的方法。在实现cyclic shift时要用到torch.roll()。
在这里插入图片描述

具体步骤

假设原图window partition是个4×4tensor:
在这里插入图片描述
接下来要实现上图中所示的A、B、C变换,即1到右下角;5,9,13到1的上面;2,3,4到1的左边;其他元素相对位置不变。那么可以通过以下两步实现:
在这里插入图片描述
在这里插入图片描述
这样就完成了cyclic shift。

若要完成reverse cyclic shift,则将对应的shifts改成正数即可实现。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
图解Swin Transformer的W-MSA:用PyTorch代码手把手拆解窗口注意力与移位窗口 本文深入解析Swin Transformer的窗口注意力机制(W-MSA)与移位窗口设计(SW-MSA),通过PyTorch代码实现和直观图解,详细拆解其核心原理。文章涵盖窗口划分、相对位置编码、注意力掩码等关键技术,帮助读者理解如何在高分辨率图像处理中实现高效计算。 阅读详情

相关推荐

从注意力到Swin:视觉Transformer核心原理与代码实践

注意力机制是深度学习中的核心技术,它通过查询、键、值的加权计算,让模型能够自适应地关注全局相关特征。自注意力机制进一步打破了RNN的顺序依赖,实现了并行计算和长距离建模。在计算机视觉领域,Vision Transformer(ViT)将图像切分为patch序列,用Transformer Encoder进行特征提取,开创了“图像即序列”的范式,但其对大规模数据依赖较强。Swin Transformer通过窗口自注意力和层级化设计,降低了计算复杂度,同时提供多尺度特征,更适合目标检测、分割等密集预测任务。本文以

weixin_33868027的博客 315

TensorFlow相关组件的安装

TensorFlow相关组件的安装

AAI666666的博客 3934

别再死磕全局注意力了!手把手带你用PyTorch实现Swin Transformer的W-MSA(附完整代码与图解)

本文深入解析Swin Transformer中的窗口多头自注意力(W-MSA)机制,通过PyTorch实现和可视化图解,展示如何将计算复杂度从O(n²)降至O(n)。文章详细介绍了窗口划分策略、移位窗口的跨区域信息融合、注意力掩码实现等关键技术,并提供了完整的代码示例和性能优化建议,帮助开发者高效应用W-MSA于高分辨率图像处理任务。

weixin_30882895的博客 636

本地部署DeepSeek大模型电脑配置推荐

针对本地部署DeepSeek大模型的配置需求,需根据模型规模(如7B/13B/70B参数)和量化方案进行区分。

huang9604的博客 3万+

DeepSeek R1本地化部署与联网功能实战指南:从零搭建智能对话系统

在人工智能技术快速发展的今天,如何将先进的对话模型DeepSeek R1部署到本地环境并赋予其联网能力,成为许多开发者和企业关注的重点。本文将深入讲解完整的本地化部署流程,并通过实例代码演示如何为模型添加实时网络访问功能。

理论都是虚的,代码才是王道。 7万+

未来已来?2026最新国内15家AI大模型应用盘点(附体验网址,持续更新)

未来已来?国内15家AI大模型盘点及体验网址,一起来看看吧!

Code_流苏:在代码中寻诗意,在实践中觅真知 11万+

Swin Transformer中torch.roll()详解

dim=1,shift=40指的就是数据沿着H维度,将数据朝正反向滚动40,超出部分循环回到图像中。dim=2,shift=40指的就是数据沿着W维度,将数据朝正反向滚动40,超出部分循环回到图像中。这里img的shape是[1,56,56,96],即[B,H,W,C]格式。torch.roll()这个函数看官方解释很懵,直接对照可视化来理解。这里的原点是左上角,H的正方向向下,W正方向向右。

weixin_44823313的博客 768

stm32 + freertos + c++混合编程方法

其他一些资料上面,c++配置成--cpp11或者-cpp 都是把工程配置成c++。三、添加cpp文件,我们调用cpp文件里面的接口函数,不需要修改main.c后缀名。2、配置工程编译时候是--c99,是因为工程里面FreeRTOS是c语言,c++模式会报错。我们这里是默认c,编写的c++文件,单独选择--cpp编译,这在后面配置!c++是面向对象编程,对于一些项目来说,c++编程更加合适!stm32cubemax配置,这里就不写了,配置资料比较多。这里就是让cpp文件在c++下编译。最后,编程成功,点亮!

yuhu0012的博客 2629

[pytorch]torch.roll函数

torch中的roll函数可以用于张量的位置变换操作。 博客推荐 从上面的例子可以看出移动只发生在指定的维度上,在中就是图片的高、宽(其形式为) 的维度表示图片的H,也就是一个shape为的张量,shift=1表示这个维度上向下移动一个元素,多出的补到开头,而维度为图片的W,shift=-1表示这个维度上向上移动一个元素。...

清欢年岁 746

华为、Cisco、H3C、中兴网络设备如何配置syslog日志采集

华为、Cisco、H3C、中兴网络设备如何配置syslog日志采集

weixin_40239644的博客 8706

RealSense D455的标定并运行VINS-FUSION

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_40186909的博客 2万+

【Swin-T onnx】swin transformer 转 onnx Error解决

解决方案:torch.cat中第二个参数是dim,不是dims。错误原因:pytorch版本问题,报错的这个版本是1.9.1。解决方案:pytorch版本升级为1.10.1即可。错误原因:torch.cat函数使用错误。推荐使用torch1.10以上的版本。错误原因:roll算子不支持。

计算机视觉方面的点点滴滴,欢迎一起讨论 2548

KBS投稿全流程拆解:从模板准备到条件接收的实战指南

本文详细拆解了KBS期刊投稿的全流程,从模板准备、投稿系统操作到返修策略和条件接收。重点介绍了Cover Letter撰写技巧、Latex模板选择、审稿周期管理以及返修文件的系统准备方法,帮助研究者高效完成KBS投稿并提升接收概率。

weixin_26938645的博客 704

pytorch学习之swin-transformer算法读后感

pytorch的高阶编程技巧

benben044的专栏 801

UE5摄像机抖动全攻略:从Perlin噪点到Sequence实战(附参数调优技巧)

本文深入解析UE5摄像机抖动技术,从Perlin噪点算法到CameraShakeBase蓝图应用,再到Sequence高级控制,提供全面的参数调优技巧。涵盖战斗、爆炸等场景的预设参数,帮助开发者实现专业级抖动效果,提升游戏沉浸感。

weixin_30300225的博客 96

【无标题】 Python自动化法律文书撰写

Jinja2是一个功能强大的模板引擎,支持丰富的语法和功能。除了条件判断和循环语句外,Jinja2还支持过滤器、宏、继承等高级特性,非常适合处理复杂的文书模板。

master_chenchen的博客 2063

从ViT到Swin Transformer:深入理解PyTorch nn.Unfold/Fold在视觉Transformer中的关键作用

本文深入探讨了PyTorch中`nn.Unfold`和`nn.Fold`函数在视觉Transformer(如ViT和Swin Transformer)中的关键作用。通过详细分析这些函数在图像序列化、滑动窗口机制和局部注意力计算中的应用,揭示了它们如何成为连接传统卷积操作与现代Transformer架构的桥梁。文章还提供了性能优化技巧和高级应用示例,帮助开发者更好地理解和利用这些基础但强大的工具。

weixin_30681615的博客 384

FileZilla Server 1.2.0 TLS证书过期问题

FileZilla Server TLS证书过期后重新生成

Wigle的备忘录 7527

TorchVision Video Swin Transformer 3D 模型全解析:swin3d_t / swin3d_s / swin3d_b 的架构、权重与实战

TorchVision 官方文档 [docs/source/models/video_swin_transformer.rst](https://link.gitcode.com/i/15b21876a807e225cae4be2b6cae950c) 展示了视频理解领域中极具代表性的 **Video Swin Transformer** 系列模型:`swin3d_t`、`swin3d_s` 与 `

gitblog_00916的博客 1099

Jetson Nano 实战指南:深度学习环境配置与 YOLOv5 边缘端部署解析

Jetson Nano是NVIDIA推出的嵌入式AI开发板,凭借其强大的GPU计算能力和完善的软件生态系统,成为边缘AI部署的理想平台。本教程源于作者团队参加2024中国机器人大赛暨RoboCup机器人世界杯中国赛机器人先进视觉3D识别赛道的实战经验,是一份经过验证的环境部署指南。

FJN110的博客 152

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Transformer在计算机视觉中的核心原理与ViT/Swin代码实战

深度学习技术飞速演进,注意力机制作为现代神经网络的核心组件,正在改变图像识别与处理的方式。它通过动态建模特征间的全局依赖关系,解决了传统卷积网络在长距离建模上的局限。自注意力机制让模型从数据中自主学习关键信息,成为Transformer架构的基石。这一技术在自然语言处理领域取得突破后,迅速迁移至计算机视觉,催生了Vision Transformer(ViT)与Swin Transformer等代表性模型。它们以分块、窗口化等策略适配图像数据,在图像分类、目标检测、语义分割等任务中展现强大性能,并覆盖多模态感

weixin_34112181的博客 407

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

别再死记硬背了!用PyTorch代码和图解,彻底搞懂Swin Transformer的W-MSA和SW-MSA

本文通过PyTorch代码和图解深入解析Swin Transformer中的W-MSA(窗口注意力)和SW-MSA(移动窗口注意力)实现细节。从窗口划分的高效计算到相对位置编码的巧妙设计,再到Attention Mask的应用原理,帮助开发者彻底理解这一创新架构的核心技术。文章特别关注工程实现中的关键技巧,如矩阵操作优化、循环位移实现和性能考量,为CV研究者提供实用指南。

weixin_30608503的博客 352

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

别再只调参了!深入Swin Transformer的Shift Window Mask:一份PyTorch源码级别的避坑与调试指南

本文深入解析Swin Transformer中的Shift Window Mask机制,提供PyTorch源码级别的调试指南。从窗口划分、循环移位到注意力掩码,详细剖析三大核心环节的常见陷阱与解决方案,帮助开发者高效避坑并优化模型性能。特别针对attn_mask实现中的关键问题,给出实战验证的代码示例和调试检查清单。

weixin_30740581的博客 457

Swin-Transformer源码审计:窗口注意力与工程落地全解析

视觉Transformer正在重塑计算机视觉的模型设计范式,其中Swin-Transformer凭借窗口注意力和分层结构,成为兼顾精度与效率的经典骨干网络。它的核心思想是将图像划分为局部窗口,在窗口内计算自注意力,并通过移位窗口实现跨窗信息交互,从而在保持线性复杂度的同时获取多尺度特征。这种设计不仅让模型在ImageNet分类上表现优异,更在目标检测、语义分割等密集预测任务中展现出显著优势。从工程视角看,其代码仓库的配置管理、模块化设计和部署链路,都为工业落地提供了良好基础。无论是入门Transformer

weixin_34072458的博客 295

视觉Transformer演进:从ViT到Swin的核心技术与实践

Transformer架构正在重塑计算机视觉领域,其核心的自注意力机制通过Query-Key-Value动态路由实现特征交互,多头注意力则并行捕捉不同视觉特征。在视觉任务中,位置编码需要适配图像二维结构,相对位置偏置成为关键技术。ViT通过patch embedding将图像转化为序列,而Swin Transformer创新性地引入窗口注意力和移位窗口策略,在保持全局建模能力的同时提升计算效率。这些技术在图像分类、目标检测等场景展现强大性能,PyTorch实现中的关键细节如多头注意力拆分、相对位置编码计算等

weixin_34082789的博客 474
上一篇: AI产品经理薪资30k起步?0基础可以转行AI产品吗?
下一篇: 熬了一晚上,我从零实现了 Transformer 模型,把代码讲给你听
爱喝白开水a
博客等级 码龄3年 6793粉丝 763原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值