pytorch中repeat()函数理解

最近在学习过程中遇到了repeat()函数的使用,这里记录一下自己对这个函数的理解。

情况1:repeat参数个数与tensor维数一致时

a = torch.tensor([[1, 2, 3],[1, 2, 3]])
b = a.repeat(2, 2)
print(b.shape)

运行结果:

即repeat的参数是对应维度的复制个数,上段代码为0维复制两次,1维复制两次,则得到以上运行结果。其余扩展情况依此类推

情况2:repeat参数个数与tensor维数不一致时

# a形状(2,3)
a = torch.tensor([[1, 2, 3],[1, 2, 3]])
# repeat参数比维度多,在扩展前先讲a的形状扩展为(1,2,3)然后复制
b = a.repeat(1, 2, 1)
print(b.shape)  # 得到结果torch.Size([1, 4, 3])

首先在第0维扩展一个维度,维数为1,然后按照参数指定的次数进行复制

# a形状(2,3)
a = torch.tensor([[1, 2, 3],[1, 2, 3]])
# repeat参数比维度多,在扩展前先讲a的形状扩展为(1,2,3)然后复制
b = a.repeat(1, 1, 2)
print(b.shape)  # 得到结果torch.Size([1, 2, 6])
# a形状(2,3)
a = torch.tensor([[1, 2, 3],[1, 2, 3]])
# repeat参数比维度多,在扩展前先讲a的形状扩展为(1,2,3)然后复制
b = a.repeat(2, 1, 1)
print(b.shape)  # 得到结果torch.Size([2, 2, 3])

以上演示可以看到,在参数个数大于原tensor维度个数时,总是先在第0维扩展一个维数为1的维度,然后按照参数指定的复制次数进行复制。计算输出的形状时,可以按照 对应参数*对应维度维数 得到结果

pytorch中repeat()函数理解相关推荐

  1. pytorch 中 contiguous() 函数理解

    pytorch 中 contiguous() 函数理解 文章目录 pytorch 中 contiguous() 函数理解 引言 使用 contiguous() 后记 文章抄自 Pytorch中cont ...

  2. Pytorch中contiguous()函数理解

    引言 在pytorch中,只有很少几个操作是不改变tensor的内容本身,而只是重新定义下标与元素的对应关系的.换句话说,这种操作不进行数据拷贝和数据的改变,变的是元数据. 会改变元数据的操作是: n ...

  3. pytorch中unsqueeze()函数理解

    unsqueeze()函数起升维的作用,参数表示在哪个地方加一个维度. 在第一个维度(中括号)的每个元素加中括号 0表示在张量最外层加一个中括号变成第一维. 直接看例子: import torch i ...

  4. Pytorch 的repeat函数

    Pytorch 的repeat函数 看代码的时候,对于repeat函数的参数产生了疑问,再查阅资料的情况下算是搞清楚了,这篇博客作为一个学习笔记记录一下. import torchdata = tor ...

  5. **Pytorch 中view函数和reshape函数的区别*

    Pytorch 中view函数和reshape函数的区别(我是一名大一刚学计算机的学生 希望我的说法对你有帮助) 首先:要了解这个问题我们要先了解一个基本知识 张量的储存方式 跟据图片我们可以清楚的看 ...

  6. torch中repeat()函数的准确理解

    pytorch中,repeat()这个函数的功能是很容易理解的,但是函数在不同参数下的执行逻辑通常还是会让初次接触的同学有点疑惑,今天仔细想了一下,感觉可以以这样的方式去理解: import torc ...

  7. Pytorch中gather函数的个人理解方法

    之前一直理解不了Pytorch中gather的用法,看了官方的文档也是一头雾水.然后自己琢磨,找规律,用以下方法进行理解. 一.官方文档 torch.gather(input, dim, index, ...

  8. python batchnorm2d_BatchNorm2d原理、作用及其pytorch中BatchNorm2d函数的参数讲解

    BN原理.作用: 函数参数讲解: BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) 1. ...

  9. Pytorch中的contiguous理解

    最近遇到这个函数,但查的中文博客里的解释貌似不是很到位,这里翻译一下stackoverflow上的回答并加上自己的理解. 在pytorch中,只有很少几个操作是不改变tensor的内容本身,而只是重新 ...

最新文章

  1. poj 1740 A New Stone Game 博弈
  2. Xshell Linux常用命令及vim与权限修改等常见问题
  3. 使用PyTorch从零开始实现YOLO-V3目标检测算法 (一)
  4. 学会理解并编辑/etc/fstab
  5. 面试还在被红-黑树虐?看完这篇动图文章轻松反虐面试官
  6. 亮眼的财报遇到疫情,阿里的生意会好做吗?
  7. Django中的shell,和数据增删查改
  8. Raft当初为什么会被命名为Raft?
  9. 优麒麟这样的linux版本,百度网盘 Linux 版发布,搭配优麒麟运行更完美!
  10. Charles抓包安卓端
  11. 图像的旋转,imrotate函数的应用
  12. python把工作簿拆分为工作表_如何批将Excel的多个Sheet工作表拆分为独立的工作簿?...
  13. Java 编写一个类Letter,要求该类创建对象p,并调用方法printLetter输出英文字母表。
  14. ORACLE SPA and RAT
  15. 金三银四已过,为大家整理一批高频java面试题,花点耐心看完,offer拿到手软!
  16. 个人公众号: AI科技时讯
  17. MaxScript调用IGame
  18. 点猫科技与Aqara绿米达成战略合作,助推校内人工智能教育普及
  19. npm install 报错 Failed at the XXX install script
  20. 通信工程师传输与接入ATM网络组成和接口

热门文章

  1. Dubbo系列之微服务框架整合教程
  2. rtthread在cortex-m4架构芯片的启动流程
  3. js IP地址正则校验
  4. 电脑自动关机是什么原因?为什么电脑会自动关机?轻松弄懂
  5. 获取图片Exif信息
  6. PHP获取文件夹下所有图片信息
  7. 山东理工大学ACM平台题答案 2561 九九乘法表
  8. [Perl]如何取绝对路径:FindBin模块和Cwd模块用法和区别
  9. uln2003步进电机驱动程序
  10. Visual Studio 2010带来的新机遇、新特性和新动力