Pytorch(二)torch.repeat

Pytorch(二)torch.repeat

前几天遇到了这个函数,感觉别人说的也不是特别清楚,记录一下

首先repeat是在原始张量上进行扩充的,然后我们再从维度的角度上去理解,第几个参数的值表示在的几维上根据原始张量进行扩充

import torch
 
x = torch.tensor([1, 2, 3])
print(x.shape)

# torch.Size([3])
print(x)

# tensor([1, 2, 3])
x1 = x.repeat(4)  # 相当于在第0个维度上扩张4次
print("x1.shape:", x1.shape)

# x1.shape: torch.Size([12])  得到了3*4,12维的张量
print("x1:", x1)

# x1: tensor([1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3])
x2 = x.repeat(3, 2)  
# 当有两个参数时,因为之前的x只有1维,现在扩张成2维,先在第0维扩张3次,再在第1维扩张2次,参考下图
print("x2.shape:", x2.shape)

# x2.shape: torch.Size([3, 6])
print('x2:', x2)

# x2: tensor([[1, 2, 3, 1, 2, 3],
#         [1, 2, 3, 1, 2, 3],
#         [1, 2, 3, 1, 2, 3]])

在这里插入图片描述
三维的我举个例子,假设单通道图片,我想复制成三通道的

import torch


img = torch.arange(4).reshape(2, -1)
print(img.shape) 
# torch.Size([2, 2])  H*W的图 2*2
print(img)
# tensor([[0, 1],
#         [2, 3]])
repeat_img = img.repeat(3, 1, 1)  # 相当于0维扩3次,1,2维不变
print(repeat_img.shape)

# torch.Size([3, 2, 2])  (C,H,W)
print(repeat_img)
# tensor([[[0, 1],
#          [2, 3]],
# 
#         [[0, 1],
#          [2, 3]],
# 
#         [[0, 1],
#          [2, 3]]])

参考:https://blog.csdn.net/weixin_41041772/article/details/123296659

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值