pytorch中torch.roll用法说明

这篇具有很好参考价值的文章主要介绍了pytorch中torch.roll用法说明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

这个函数是用来移位的,是顺移。input是咱们要移动的tensor向量,shifts是要移动到的位置,要移动去哪儿,dims是值在什么方向上(维度)去移动。比如2维的数据,那就两个方向,横着或者竖着。最关键的一句话,所有操作针对的是第一行或者第一列,下面举例子给大家做解释,自己慢慢体会

import torch

x = torch.tensor([1, 2, 3, 4, 5, 6, 7, 8, 9]).view(3, 3)
print("")
print(x)

y = torch.roll(x, 1, 0)
print("")
print(y)

输出:
tensor([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])

tensor([[7, 8, 9],
        [1, 2, 3],
        [4, 5, 6]])

torch.roll(x, 1, 0) 这行代码的意思就是把x的第一行(0维度)移到1这个位置上,其他位置的数据顺移。
x——咱们要移动的向量
1——第一行向量要移动到的最终位置
0——从行的角度去移动

import torch

x = torch.tensor([1, 2, 3, 4, 5, 6, 7, 8, 9]).view(3, 3)
print("")
print(x)

y = torch.roll(x, -1, 1)
print("")
print(y)

输出:
tensor([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])

tensor([[2, 3, 1],
        [5, 6, 4],
        [8, 9, 7]])

torch.roll(x, -1, 1) 意思就是把x的第一列(1维度)移到-1这个位置(最后一个位置)上,其他位置的数据顺移。

shifts和dims可以是元组,其实就是分步骤去移动

import torch

x = torch.tensor([1, 2, 3, 4, 5, 6, 7, 8, 9]).view(3, 3)
print("")
print(x)

y = torch.roll(x, (0,1), (1,1))
print("")
print(y)

输出:

tensor([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])

tensor([[3, 1, 2],
        [6, 4, 5],
        [9, 7, 8]])

torch.roll(x, (0,1), (1,1)) :
首先,针对元组第一个元素,把x的第一列(1维度)移到0这个位置(已经在0这个位置,因此原地不动)上,其他位置的数据顺移。(所有数据原地不动)

然后,针对元组第二个元素,把a的第一列(1维度)移到1这个位置上,其他位置的数据顺移。文章来源地址https://www.toymoban.com/news/detail-856848.html

到了这里,关于pytorch中torch.roll用法说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • torch.einsum() 用法说明

    关联网站: einops官网 torch.einsum( equation , * operands ) → Tensor 对输入元素 operands 沿指定的维度、使用爱因斯坦求和符号的乘积求和。 参数: equation ( string ) – 爱因斯坦求和的下标。 operands ( List [ Tensor ] )——计算爱因斯坦求和的张量。 ​ Einsum允许计算许多常见的 多维线性

    2024年02月15日
    浏览(41)
  • Pytorch深度学习-----神经网络之线性层用法

    PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用(ToTensor,Normalize,Resize ,Compose,RandomCrop) Pytorch深度学习------torchvision中dataset数据集的使用(CIFAR10) Pytorch深度学习--

    2024年02月14日
    浏览(37)
  • 【pytorch】torch.cdist使用说明

    torch.cdist的使用介绍如官网所示, 它是批量计算两个向量集合的距离。 其中, x1和x2是输入的两个向量集合。 p 默认为2,为欧几里德距离。 它的功能上等同于 scipy.spatial.distance.cdist (input,’minkowski’, p=p) 如果x1的shape是 [B,P,M], x2的shape是[B,R,M],则cdist的结果shape是 [B,P,R] x1一般

    2024年01月15日
    浏览(47)
  • 举例说明PyTorch函数torch.cat与torch.stack的区别

    torch.cat 用于在 给定的维度 上连接多个张量,它将这些张量沿着指定维度堆叠在一起。 torch.stack 用于在 新的维度 上堆叠多个张量,它会创建一个新的维度,并将这些张量沿着这个新维度堆叠在一起。 Example1: Example1: Example2:

    2024年02月09日
    浏览(44)
  • 人工智能概论报告-基于PyTorch的深度学习手写数字识别模型研究与实践

    本文是我人工智能概论的课程大作业实践应用报告,可供各位同学参考,内容写的及其水,部分也借助了gpt自动生成,排版等也基本做好,大家可以参照。如果有需要word版的可以私信我,或者在评论区留下邮箱,我会逐个发给。word版是我最后提交的,已经调整统一了全文格

    2024年02月05日
    浏览(74)
  • 人工智能深度学习100种网络模型,精心整理,全网最全,PyTorch框架逐一搭建

    大家好,我是微学AI,今天给大家介绍一下人工智能深度学习100种网络模型,这些模型可以用PyTorch深度学习框架搭建。模型按照个人学习顺序进行排序: 深度学习模型 ANN (Artificial Neural Network) - 人工神经网络:基本的神经网络结构,包括输入层、隐藏层和输出层。 学习点击地

    2024年02月14日
    浏览(54)
  • Pytorch实用教程:Pytorch中torch.max的用法

    torch.max 在 PyTorch 中是一个非常有用的函数,它可以用于多种场景,包括寻找张量中的最大值、沿指定维度进行最大值操作,并且还可以返回最大值的索引。其用法可以根据你的需求进行不同的调用方式。 基本用法 找到整个张量的最大值 如果直接对一个张量使用 torch.max ,它

    2024年04月13日
    浏览(33)
  • Pytorch中torch.rand()、torch.randn()、torch.randint()、torch.randperm()几个函数的说明

    1. torch.rand(*sizes, out=None) - Tensor 参数 : sizes (int...) :整数序列,定义了输出张量的形状。 out (Tensor, 可选) :输出张量。 返回值 : 一个新的张量,包含了在区间 [0, 1) 上均匀分布的随机数。 用途 : torch.rand 用于生成指定形状的张量,其元素从 [0, 1) 的均匀分布中随机抽取。

    2024年01月19日
    浏览(52)
  • Pytorch:torch.nn.Module.apply用法详解

    torch.nn.Module.apply 是 PyTorch 中用于递归地应用函数到模型的所有子模块的方法。它允许对模型中的每个子模块进行操作,比如初始化权重、改变参数类型等。 以下是关于 torch.nn.Module.apply 的示例: 1. 语法 Module:PyTorch 中的神经网络模块,例如 torch.nn.Module 的子类。 fn:要应用到

    2024年01月15日
    浏览(51)
  • Pytorch:torch.repeat_interleave()用法详解

    torch.repeat_interleave() 是 PyTorch 中的一个函数,用于 按指定的方式重复张量中的元素 。 以下是该函数的详细说明: torch.repeat_interleave() 的原理是将 输入张量中的每个元素 重复 指定的次数 ,并将这些重复的元素拼接成一个新的张量。 input: 输入的张量。 repeats: 用于指定每个元

    2024年01月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包