torch.roll()函数使用方法

news2024/11/27 4:32:16

官方文档在这里,说的比较清楚,但是举的例子不是很直观。我们再详细解释一下:

torch.roll(input, shifts, dims=None) → Tensor

  • input:输入的tensor
  • shifts:滚动的方向和长度,若为正,则向索引大的方向滚动;若为负,则向索引减小的方向滚动。可是一个整数也可以是一个元组
  • dims:tensor滚动的维度;要和shifts设置的数量对齐。

这里要特别指出,如果移动的位置已经超出本身维度的大小,就补到反方向去。即不会丢弃数值,也不会凭空补齐数值。会循环滚动。

# 二维tensor举例
x = torch.tensor([[0, 0, 0, 0],
                  [0, 1, 1, 0],
                  [0, 1, 1, 0],
                  [0, 0, 0, 0]])
                  
# 第0维向索引大的方向滚动1个位置,即整体向下移动1个像素,第1行的元素由第4行元素补齐
y = torch.roll(x, shifts=(1), dims=(0))
tensor([[0, 0, 0, 0],
        [0, 0, 0, 0],
        [0, 1, 1, 0],
        [0, 1, 1, 0]])

# 第0维向索引小的方向滚动1个位置,即整体向上移动1个像素,第4行的元素由第1行元素补齐
x = torch.roll(x, shifts=(-1), dims=(0))
tensor([[0, 1, 1, 0],
        [0, 1, 1, 0],
        [0, 0, 0, 0],
        [0, 0, 0, 0]])
        
# 第1维向索引大的方向滚动2个位置,即整体向右移动2个像素,第1、2列的元素由第3、4列元素补齐        
x = torch.roll(x, shifts=(0, 2), dims=(0, 1))
tensor([[0, 0, 0, 0],
        [1, 0, 0, 1],
        [1, 0, 0, 1],
        [0, 0, 0, 0]])
        
# 第0、1维向索引小的方向滚动2像素,即整体向下、右移动2个像素
x = torch.roll(x, shifts=(2, 2), dims=(0, 1))
tensor([[1, 0, 0, 1],
        [0, 0, 0, 0],
        [0, 0, 0, 0],
        [1, 0, 0, 1]])
        

torch.roll()的使用比较简单,在实际中的应用也比较多,比如在swin-transformer中,利用torch.roll()进行MSA的计算,具体原理就不讲解了:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2045029.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web 服务基础介绍

目录 1.1 互联网发展历程回顾 1.2 Web 服务介绍 1.2.1 Apache 经典的 Web 服务端 1.2.1.1 Apache prefork 模型 1.2.1.2 Apache worker 模型 1.2.1.3 Apache event模型 1.2.2 Nginx-高性能的 Web 服务端 1.2.3 用户访问体验和性能 1.2.3.1 用户访问体验统计 1.2.3.2 …

数字孪生技术框架:从数据到决策的桥梁

随着科技的飞速发展,数字孪生技术作为一种创新的信息化手段,正逐步渗透到各个行业领域,成为推动数字化转型的重要力量。数字孪生技术框架,作为支撑这一技术体系的核心架构,以其独特的层级结构,实现了从数据…

Matlab进阶绘图第66期—特征渲染的滑珠气泡图

特征渲染的滑珠气泡图是在滑珠散点图的基础上,添加散点大小与颜色参数,通过散点的尺寸与颜色表示两个额外的特征。 由于Matlab中没有现成的函数绘制特征渲染的滑珠气泡图,因此需要大家自行解决。 本文利用自己制作的BubbleScatter工具&…

奥威BI数据可视化展示:如何充分发挥数据价值

奥威BI数据可视化展示:如何充分发挥数据价值 在大数据时代,数据已成为企业最宝贵的资产之一。然而,仅仅拥有海量数据并不足以带来竞争优势,关键在于如何有效地挖掘、分析和展示这些数据,从而转化为有价值的洞察和决策…

更改Docker默认存储位置

Docker镜像和容器等数据默认保存在目录/var/lib/docker目录下,我们可以更改Docker 的默认存储位置,比如改到数据盘。需注决,变更存储位置时,原来的镜像和容器有可能丢失。 1、确认docker默认存放目录 [rootkfk12 ~]# docker inf…

算法的学习笔记—链表中环的入口结点(牛客JZ23)

😀前言 在链表的操作中,环形链表是一个常见且需要特别处理的结构。当我们遇到一个包含环的链表时,如何找到环的入口结点是一个经典的问题。本文将详细介绍使用双指针技术来解决这一问题,并提供一个基于 Java 的实现代码。 &#x…

搭建内网开发环境(五)|基于nexus搭建npm私服

引言 在前面一篇教程中,通过 nexus 搭建了 maven 的私服,并通过脚本将本地的依赖文件批量上传到私服中,本文介绍通过 nexus 搭建 npm 私服,同样也通过脚本将本地依赖文件同步到私服中。 搭建内网开发环境(一&#xff…

目标检测 | yolov6 原理和介绍

前言:目标检测 | yolov5 原理和介绍 后续: 1.简介 YOLOv6是由美团视觉智能部研发的一款目标检测框架,专注于工业应用,致力于提供极致的检测精度和推理效率。相较于YOLOv4和YOLOv5,YOLOv6在网络结构方面进行了深入优化…

动手学深度学习(pytorch)学习记录12-激活函数[学习记录]

激活函数 激活函数(activation function)通过计算加权和并加上偏置来确定神经元是否应该被激活, 它们将输入信号转换为输出的可微运算。 import torch import matplotlib.pyplot as plt 简单定义一个画图的函数 def graph_drawing(x_,y_…

Robotics: Aerial Robotics 部分笔记——Week3(2)规划部分

3.2 轨迹不同于路径,需要是光滑的,考虑无人机动力学约束三阶导控制jerk,四阶导控制snap如果轨迹要满足某个特点,如:最短时间、最短路径,此时最优控制思路会被引入,变分法等算法可用以求解,选择…

2024最新版本Python安装及开发环境配置(vscodepython)

python安装 去Python官网下载最新版本: 接下来请一步步按照图片操作: 这样子就安装完成了 测试Python安装是否成功 先打开终端 右键Windows徽标,点击终端 然后输入python,如果如下图所示,就说明安装成功&#xff0…

【深度学习实战】利用Linear Regression预测房价

本文参考了李沐老师的b站深度学习课程 课程链接,使用了线性回归模型,特别适合深度学习初学者。通过阅读本文,你将学会如何用PyTorch训练模型,并掌握一些实用的训练技巧。希望这些内容能对你的深度学习学习有所帮助。 安装pytorch …

【书生大模型实战营(暑假场)】基础任务四 XTuner微调个人小助手认知

基础任务四 XTuner微调个人小助手认知 任务文档视频XTuner微调前置基础 文章目录 基础任务四 XTuner微调个人小助手认知0 认识微调0.1 Fine-tune 的两种范式0.2 常见微调技术 1 微调工具 XTuner1.1 认识高效微调框架 XTuner1.2 XTuner 具有出色的优化效果1.3 XTuner 零显存浪费…

【已成功EI检索】第五届新材料与清洁能源国际学术会议(ICAMCE 2024)

重要信息 会议官网:2024.icceam.com 接受/拒稿通知:投稿后1周内 收录检索:EI, Scopus 会议召开视频 见刊封面 EI检索页面 Scopus 检索页面 相关会议 第六届新材料与清洁能源国际学术会议(ICAMCE 2025) 大会官网&…

【Android】不同系统版本获取设备MAC地址

【Android】不同系统版本获取设备MAC地址 尝试实现 尝试 在开发过程中,想要获取MAC地址,最开始想到的就是WifiManager,但结果始终返回02:00:00:00:00:00,由于用得是wifi ,考虑是不是因为用得网线的原因,但…

【海思SS626 | VB】关于 视频缓存池 的理解

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

【C#】explicit、implicit与operator

字面解释 explicit:清楚明白的;易于理解的;(说话)清晰的,明确的;直言的;坦率的;直截了当的;不隐晦的;不含糊的。 implicit:含蓄的;不直接言明的;成为一部分的;内含的;完全的;无疑问的。 operator:操作人员;技工;电话员;接线员;…

OSL 冠名赞助Web3峰会 “FORESIGHT2024”圆满收官

OSL 望为香港数字资产市场发展建设添砖加瓦 (香港,2024 年 8 月 13 日)- 8 月 11 日至 12 日, 由 香港唯一专注数字资产的上市公司 OSL 集团(863.HK)冠名赞助,Foresight News、 Foresight Ventu…

C++ 11相关新特性(lambda表达式与function包装器)

目录 lambda表达式 引入 lambda表达式介绍 lambda表达式捕捉列表的传递形式 lambda表达式的原理 包装器 包装器的基本使用 包装器与重载函数 包装器的使用 绑定 C 11 新特性 lambda表达式 引入 在C 98中,对于sort函数来说,如果需要根据不同的比较方式实现…

Springboot日志监听功能

目录 1. 概述1.1. 需求1.2. 思路 2. 功能实现2.1 依赖选取2.2 编写logBack.xml2.3 日志拦截2.4 封装请求为HttpServletRequestWrapper2.5 AOP2.6 日志监听 3. 后记 1. 概述 1.1. 需求 背景:拆分支付系统的日志,把每笔单子的日志单独拎出来存库。每笔单…