Pytorch中的repeat以及repeat_interleave用法

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

repeat和repeat_interleave都是pytorch中用来复制的两种方法,但是二者略有不同,如下所示。

1.repeat

torch.tensor().repeat()里面假设里面有3个参数,即3,2,1,如下所示:

import torch 
x = torch.tensor([1,2,3]) 
xx = x.repeat(3,2,1)#将一维度的x向量扩展到三维

用repeat时,应当从后往前看,即先复制最后一维,依次向前。
①最后一个数字为1,复制一次,还是[1,2,3].
②倒数第二个数字为2,复制两次,得到[[1,2,3],[1,2,3]].
③倒数第三个数字为3,复制三次,得到[[[1,2,3],[1,2,3]],[[1,2,3],[1,2,3]],[[1,2,3],[1,2,3]]].
具体演示代码如下所示:

import torch
x = torch.tensor([1, 2, 3])
x1 = x.repeat(3)
print("x1:\n", x1)
x2 = x.repeat(3, 1)
print("x2:\n",x2)
x3 = x.repeat(3, 2)
print("x3:\n",x3)
x4 = x.repeat(3, 2, 1)
print("x4:\n",x4)

结果如下所示:

x1:
 tensor([1, 2, 3, 1, 2, 3, 1, 2, 3])
x2:
 tensor([[1, 2, 3],
        [1, 2, 3],
        [1, 2, 3]])
x3:
 tensor([[1, 2, 3, 1, 2, 3],
        [1, 2, 3, 1, 2, 3],
        [1, 2, 3, 1, 2, 3]])
x4:
 tensor([[[1, 2, 3],
         [1, 2, 3]],

        [[1, 2, 3],
         [1, 2, 3]],

        [[1, 2, 3],
         [1, 2, 3]]])

Process finished with exit code 0

2.repeat_interleave

repeat_interleave是将张量中的元素沿某一维度复制n次,即复制后的张量沿该维度相邻的n个元素是相同的。
repeat_interleave()中有两个参数,第一个参数N是代表复制多少次,第二个参数代表维度。
具体演示代码如下所示:

import torch

x = torch.tensor([[1, 2, 3],[4,5,6]])

x1 = x.repeat_interleave(3,0)
print("x1:\n", x1)

x2 = x.repeat_interleave(3,1)
print("x2:\n",x2)

结果如下所示:

x1:
 tensor([[1, 2, 3],
        [1, 2, 3],
        [1, 2, 3],
        [4, 5, 6],
        [4, 5, 6],
        [4, 5, 6]])
x2:
 tensor([[1, 1, 1, 2, 2, 2, 3, 3, 3],
        [4, 4, 4, 5, 5, 5, 6, 6, 6]])

Process finished with exit code 0

努力加油a啊文章来源地址https://www.toymoban.com/news/detail-411230.html

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

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

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

相关文章

  • Verilog中repeat的用法

            repeat 循环语句执行指定循环数,如果循环计数表达式的值不确定,即为 x 或z 时,那么循环次数按 0 处理。repeat 循环语句的语法为: repeat(循环次数表达式)         begin             语句块;         end         其中, “循环次数表达式”用于指定

    2023年04月25日
    浏览(34)
  • Pytorch 中 expand和repeat

           在torch中,如果要改变某一个tensor的维度,可以利用view、expand、repeat、transpose和permute等方法,这里对这些方法的一些容易混淆的地方做个总结。 ​expand和repeat函数是pytorch中常用于进行张量数据复制和维度扩展的函数,但其工作机制差别很大,本文对这两个函数进

    2024年02月03日
    浏览(36)
  • PyTorch中的符号索引和函数索引用法

    Pytorch中很多函数都采用的是函数式索引的思路,而且使用函数式索引对代码可读性会有很大提升。 张量也是有序序列,我们可以根据每个元素在系统内的顺序位置,来找出特定的元素,也就是索引。 一维张量的索引 一维张量索引与Python中的索引一样是是从左到右,从0开始

    2024年02月01日
    浏览(31)
  • [pytorch]torch.cuda用法以及判断显卡是不是存在问题

    常见用法: torch.cuda.is_available() # 查看是否有可用GPU torch.cuda.device_count() # 查看GPU数量 torch.cuda.get_device_capability(device) # 查看指定GPU容量 torch.cuda.get_device_name(device) # 查看指定GPU名称 torch.cuda.empty_cache() # 清空程序占用的GPU资源 torch.cuda.manual_seed(seed) # 设置随机种子 torch.cuda.manu

    2024年02月10日
    浏览(53)
  • 了解CSS中的BFC以及用法

    目录 一 常见的定位方案 1. 普通流(所有元素默认为普通流的定位) 2. 浮动 3. 绝对定位 二  BFC  1. 定义 2. 触发条件 3. 作用 (1) 避免外边距重叠 ​(2)清除浮动 (3) 阻止元素被浮动元素覆盖         首先,先了解一下常见的定位方案。有三种:普通流(默认)、浮

    2024年04月12日
    浏览(33)
  • Lua 中的do...end和repeat...until

    do...end 在Lua中,do...end被用作一个语法结构,用于创建一个代码块。代码块是一组语句的集合,可以将多行代码组织在一起,形成一个独立的执行单元。 do...end的基本语法如下: do         -- 代码块 end 在do...end语法结构中,可以包含任意数量的语句,这些语句会按顺序执

    2024年01月18日
    浏览(35)
  • Pytorch3d中的倒角损失函数Chamfer Distance Loss的用法(pytorch3d.loss.chamfer_distance)

    API文档在这里 源码在这里 之前看到的一个干货满满的Pytorch3D安装指导与简单例子的帖子在这里  官方tutorials中提到的用法在下面这个代码块里面,前面后面东西都挺多的就把和chamfer_distance相关的摘到了这里

    2024年02月15日
    浏览(49)
  • pytorch中的tensor实现数据降维以及通道数转换

            首先导入torch包,利用torch.narrow()函数实现数据通道数转换,具体实例见下图         利用torch.rand(5,6)随机生成一个5X6的二维矩阵,利用torch.narrow(x,dim,start,length)进行通道数转化,narrow()函数里第一个参数是你需要转换的原始数据,必须是tensor形式。第二个变量

    2024年02月17日
    浏览(47)
  • 全面理解java中的构造方法以及this关键字的用法(超详细)

    Hello,各位铁汁们!我是小🐟儿哈!今天我又来更新我的Java基础学习博客了。 本篇主要内容概述: 1、🍚如何用构造方法初始化对象 2、🍚为啥要有this这个 3、🍚this.属性名访问成员变量、成员方法 4、🍚this.方法名 || this.()的用法 目录 初识构造方法  构造方法的使

    2023年04月09日
    浏览(62)
  • 【FPGA/verilog -入门学习5】verilog中的genrate for 和for 以及数组的用法

    本文参考:verilog generate语法总结-CSDN博客 Verilog数组赋值_笔记大全_设计学院 在Verilog中, generate for 和 for 都是用于循环的结构,但是它们具有不同的应用场合和语义。 for 循环: for 循环主要用于行为描述(behavioral description),通常用于描述算法或数学运算。 for 循环在仿真

    2024年02月03日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包