Pytorch torch.roll函数介绍

torch.roll 是 PyTorch 中的一个函数,用于对输入张量的元素进行循环滚动操作。它可以将张量的元素在指定的维度上移动,超出边界的元素会循环回到另一侧。以下是关于 torch.roll 函数的详细介绍:

函数语法

复制代码
torch.roll(input, shifts, dims=None)

参数说明

  • input:必需参数,为输入的 PyTorch 张量,即需要进行循环滚动操作的张量。
  • shifts :表示元素滚动的位移量。可以是一个整数,此时所有指定维度都按照这个整数进行滚动;也可以是一个与 dims 长度相同的元组或列表,用于为每个指定维度分别指定滚动的位移量。正数表示元素向维度的末尾方向滚动,负数表示向维度的起始方向滚动。
  • dims:可选参数,指定要进行滚动操作的维度。可以是一个整数,表示对单一维度进行滚动;也可以是一个元组或列表,包含多个整数,用于指定对多个维度同时进行滚动。如果不指定该参数,则会将输入张量视为一维张量进行滚动。

返回值

返回一个新的张量,其元素是输入张量在指定维度上循环滚动后的结果。新张量的形状与输入张量相同。

使用示例

一维张量滚动
复制代码
import torch

# 创建一维张量
x = torch.tensor([1, 2, 3, 4, 5])
# 向右滚动 2 个位置
rolled_x = torch.roll(x, shifts=2)
print(rolled_x)  
# 输出: tensor([4, 5, 1, 2, 3])
二维张量在单个维度上滚动
复制代码
import torch

# 创建二维张量
x = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 在第 0 维(行)上向下滚动 1 个位置
rolled_x = torch.roll(x, shifts=1, dims=0)
print(rolled_x)
# 输出:
# tensor([[7, 8, 9],
#         [1, 2, 3],
#         [4, 5, 6]])
二维张量在多个维度上滚动
复制代码
import torch

# 创建二维张量
x = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 在第 0 维向下滚动 1 个位置,在第 1 维向右滚动 2 个位置
rolled_x = torch.roll(x, shifts=(1, 2), dims=(0, 1))
print(rolled_x)
# 输出:
# tensor([[8, 9, 7],
#         [2, 3, 1],
#         [5, 6, 4]])

总结

torch.roll 函数为在 PyTorch 中对张量元素进行循环滚动提供了方便的操作方式,可用于数据增强、信号处理等多种场景,通过灵活设置 shiftsdims 参数,可以实现不同维度和不同位移量的滚动操作。

相关推荐
ZGi.ai2 分钟前
LangChain做了什么?企业场景中它和专用AI平台的定位区别
人工智能·开源框架·企业ai·- langchain·- ai应用开发
努力努力再努力wz3 分钟前
【Linux网络系列】深入理解 I/O 多路复用:从 select 痛点到 poll 高并发服务器落地,基于 Poll、智能指针与非阻塞 I/O与线程池手写一个高性能 HTTP 服务器!(附源码)
java·linux·运维·服务器·c语言·c++·python
努力努力再努力wz5 分钟前
【Linux网络系列】万字硬核解析网络层核心:IP协议到IP 分片重组、NAT技术及 RIP/OSPF 动态路由全景
java·linux·运维·服务器·数据结构·c++·python
tjc199010057 分钟前
golang如何使用t.Cleanup清理测试_golang t.Cleanup测试清理使用策略
jvm·数据库·python
SteveLaiTVT11 分钟前
从 Curl 开始:不用 SDK,通过 DeepSeek API 手写 Agent Runtime
人工智能
小糖学代码12 分钟前
LLM系列:2.pytorch入门:3.基本优化思想与最小二乘法
人工智能·python·算法·机器学习·ai·数据挖掘·最小二乘法
J_bean15 分钟前
大语言模型 API Token 消耗深度剖析
人工智能·ai·llm·大语言模型·token
醉卧考场君莫笑16 分钟前
规则与传统NLP之任务范式
人工智能·自然语言处理
214396518 分钟前
如何提升SQL数据更新的安全性_使用行级锁与悲观锁机制
jvm·数据库·python
叶子丶苏20 分钟前
第二节_机器学习基本知识点
人工智能·python·机器学习·数据科学