Pytorch中torch.repeat_interleave()函数使用及说明

 更新时间:2023年01月03日 10:30:26   作者:cv_lhp  
这篇文章主要介绍了Pytorch中torch.repeat_interleave()函数使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

torch.repeat_interleave()函数解析

1.函数说明

官网:torch.repeat_interleave(),函数说明如下图所示:

函数说明

2. 函数原型

torch.repeat_interleave(input, repeats, dim=None) → Tensor

3. 函数功能

沿着指定的维度重复张量的元素

4. 输入参数

1)input (类型:torch.Tensor):输入张量

2)repeats(类型:int或torch.Tensor):每个元素的重复次数

3)dim(类型:int)需要重复的维度。默认情况下dim=None,表示将把给定的输入张量展平(flatten)为向量,然后将每个元素重复repeats次,并返回重复后的张量。

5. 注意

1) 如果不指定dim,则默认将输入张量扁平化(维数是1,因此这时repeats必须是一个数,不能是数组),并且返回一个扁平化的输出数组。

2) 返回的数组与输入数组维数相同,并且除了给定的维度dim,其他维度大小与输入数组相应维度大小相同

3) repeats:如果传入数组,则必须是tensor格式。并且只能是一维数组,数组长度与输入数组input的dim维度大小相同

6. 代码例子

6.1 输入一维张量,不指定dim,重复次数为2次,表示将把给定的输入张量展平(flatten)为向量,然后将每个元素重复2次,并返回重复后的张量。

a = torch.randn(5)
a,torch.repeat_interleave(a,2)

输出结果如下所示:

(tensor([ 0.4030, -1.1536, -2.4513,  1.1454, -0.8818]),
 tensor([ 0.4030,  0.4030, -1.1536, -1.1536, -2.4513, -2.4513,  1.1454,  1.1454,
         -0.8818, -0.8818]))

6.2 输入二维张量,不指定dim,重复次数为2次,表示将把给定的输入张量展平(flatten)为向量,然后将每个元素重复2次,并返回重复后的张量。

a = torch.randn(3,2)
a,a.repeat_interleave(2)

输出结果如下:

(tensor([[-1.03, -0.32],
         [ 0.43,  0.78],
         [ 0.91, -0.11]]),
 tensor([-1.03, -1.03, -0.32, -0.32,  0.43,  0.43,  0.78,  0.78,  0.91,  0.91,
         -0.11, -0.11]))

6.3 输入二维张量,指定dim=0,重复次数为3次,表示把输入张量每行元素重复3次

a = torch.randn(3,2)
a,torch.repeat_interleave(a,3,dim=0)

输出结果如下:

(tensor([[ 0.14,  1.47],
         [-1.52, -0.62],
         [-0.24, -0.27]]),
 tensor([[ 0.14,  1.47],
         [ 0.14,  1.47],
         [ 0.14,  1.47],
         [-1.52, -0.62],
         [-1.52, -0.62],
         [-1.52, -0.62],
         [-0.24, -0.27],
         [-0.24, -0.27],
         [-0.24, -0.27]]))

6.4 输入二维张量,指定dim=1,重复次数为3次,表示把输入张量每列元素重复3次

a = torch.randn(3,2)
a,torch.repeat_interleave(a,3,dim=1)

输出结果如下:

(tensor([[-0.81,  0.56],
         [-2.41, -0.56],
         [ 0.38, -0.90]]),
 tensor([[-0.81, -0.81, -0.81,  0.56,  0.56,  0.56],
         [-2.41, -2.41, -2.41, -0.56, -0.56, -0.56],
         [ 0.38,  0.38,  0.38, -0.90, -0.90, -0.90]]))

6.5 输入二维张量,指定dim=0,重复次数为一个张量列表[n1,n2,n3],表示在(dim=0)对应行上面重复n1,n2,n3遍,张量列表的长度必须与dim=0的维度的长度一样,否则会报错

a = torch.randn(3,2)
a,torch.repeat_interleave(a,torch.tensor([2,3,4]),dim=0)#表示第一行重复2遍,第二行重复3遍,第三行重复4遍

输出结果如下:

(tensor([[-0.79,  0.54],
         [-0.47, -0.25],
         [-0.13,  1.03]]),
 tensor([[-0.79,  0.54],
         [-0.79,  0.54],
         [-0.47, -0.25],
         [-0.47, -0.25],
         [-0.47, -0.25],
         [-0.13,  1.03],
         [-0.13,  1.03],
         [-0.13,  1.03],
         [-0.13,  1.03]]))

7. 与torch.repeat()函数区别

两个函数方法最大的区别就是repeat_interleave是一个元素一个元素地重复,而repeat是一组元素一组元素地重复.

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python执行系统命令后获取返回值的几种方式集合

    python执行系统命令后获取返回值的几种方式集合

    今天小编就为大家分享一篇python执行系统命令后获取返回值的几种方式集合,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Tensorflow卷积实现原理+手写python代码实现卷积教程

    Tensorflow卷积实现原理+手写python代码实现卷积教程

    这篇文章主要介绍了Tensorflow卷积实现原理+手写python代码实现卷积教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python批量操作Excel文件详解

    Python批量操作Excel文件详解

    因为博主所在的地方,需要每周整理全校的青年大学习数据,Excel操作本身不难,但是这种毫无意义的体力劳动做久了就会很无趣,刚好我想起来上学期接触过Python,想着能不能试一下,取代这种无意义的劳动
    2021-11-11
  • 基于Python制作一个微信聊天机器人

    基于Python制作一个微信聊天机器人

    这篇文章主要为大家详细介绍了如何基于Python制作一个微信聊天机器人,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考下
    2024-01-01
  • python迭代器,生成器详解

    python迭代器,生成器详解

    这篇文章主要介绍了Python中的迭代器和生成器,涉及到Python中很多重要的特性,小编觉得这篇文章写的还不错,需要的朋友可以参考下
    2021-10-10
  • Python实现普通图片转ico图标的方法详解

    Python实现普通图片转ico图标的方法详解

    ICO是一种图标文件格式,图标文件可以存储单个图案、多尺寸、多色板的图标文件。本文将利用Python实现普通图片转ico图标,感兴趣的小伙伴可以了解一下
    2022-11-11
  • python 导入数据及作图的实现

    python 导入数据及作图的实现

    今天小编就为大家分享一篇python 导入数据及作图的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python matplotlib库绘制散点图例题解析

    python matplotlib库绘制散点图例题解析

    这篇文章主要介绍了python matplotlib库绘制散点图例题解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 使用Python实现合并多个Excel文件

    使用Python实现合并多个Excel文件

    合并Excel可以将多个文件中的数据合并到一个文件中,这样可以帮助我们更好地汇总和管理数据,本文主要介绍了如何使用第三方Python库 Spire.XLS for Python 实现以上两种合并Excel文件的需求,有需要的可以了解下
    2023-12-12
  • Python实现数通设备端口使用情况监控实例

    Python实现数通设备端口使用情况监控实例

    这篇文章主要介绍了Python实现数通设备端口使用情况监控的方法,涉及Python针对设备监控的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论