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_查看sqlite3表结构,查询语句的示例代码

    Python_查看sqlite3表结构,查询语句的示例代码

    今天小编就为大家分享一篇Python_查看sqlite3表结构,查询语句的示例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python 嵌套型partials的使用

    python 嵌套型partials的使用

    这篇文章主要介绍了python 嵌套型partials的使用,partial对象中包含partial对象的使用,下文更多详细介绍需要的小伙伴可以参考一下
    2022-03-03
  • numpy数组的重塑和转置实现

    numpy数组的重塑和转置实现

    本文主要介绍了numpy数组的重塑和转置实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Python爬虫之超级鹰验证码应用

    Python爬虫之超级鹰验证码应用

    众所周知python是一个很强大的语言,它拥有众多的库,今天我尝试了使用超级鹰第三方平台进行验证码的开发,需要的朋友可以参考下
    2022-08-08
  • Python实现分割文件及合并文件的方法

    Python实现分割文件及合并文件的方法

    这篇文章主要介绍了Python实现分割文件及合并文件的方法,涉及Python针对文件的分割与合并操作相关技巧,通过自定义函数split与join实现了文件的分割与合并操作,需要的朋友可以参考下
    2015-07-07
  • 带你了解python装饰器

    带你了解python装饰器

    Python中的装饰器是你进入Python大门的一道坎,不管你跨不跨过去它都在那里。Python中的装饰器的概念经常会让人搞得一头雾水,所以今天就好好来分析一下python中的装饰器
    2017-06-06
  • Python实现敏感词过滤的4种方法

    Python实现敏感词过滤的4种方法

    这篇文章主要介绍了Python实现敏感词过滤的4种方法,帮助大家处理不和谐的言论,感兴趣的朋友可以了解下
    2020-09-09
  • Selenium获取登录Cookies并添加Cookies自动登录的方法

    Selenium获取登录Cookies并添加Cookies自动登录的方法

    这篇文章主要介绍了Selenium获取登录Cookies并添加Cookies自动登录的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Python学习之二叉树实现的示例详解

    Python学习之二叉树实现的示例详解

    这篇文章主要为大家详细介绍了Python实现二叉树的相关知识,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2023-04-04
  • Python Flask基础到登录功能的实现代码

    Python Flask基础到登录功能的实现代码

    这篇文章主要介绍了Python Flask基础到登录功能的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05

最新评论