注:参考博客Pytorch中的torch.cat()函数。本人在其基础上增加了更为详细的解释。

torch.cat((A,B),axis)是对A, B两个tensor进行拼接。

参数axis指定拼接的方式。axis=0为按行拼接;axis=1为按列拼接。

拼接的时候把待拼接的tensor视作整体。(注意在示例中理解这句话)

import torch# 初始化三个 tensor
A=torch.ones(2,3)    #2x3的张量(矩阵)
# tensor([[ 1.,  1.,  1.],
#         [ 1.,  1.,  1.]])
B=2*torch.ones(4,3)  #4x3的张量(矩阵)
# tensor([[ 2.,  2.,  2.],
#         [ 2.,  2.,  2.],
#         [ 2.,  2.,  2.],
#         [ 2.,  2.,  2.]])
D=2*torch.ones(2,4)     # 2x4的张量(矩阵)
# tensor([[ 2.,  2.,  2., 2.],
#         [ 2.,  2.,  2., 2.],# 按维数0(行)拼接 A 和 B
C=torch.cat((A,B),0)
# tensor([[ 1.,  1.,  1.],
#          [ 1.,  1.,  1.],
#          [ 2.,  2.,  2.],
#          [ 2.,  2.,  2.],
#          [ 2.,  2.,  2.],
#          [ 2.,  2.,  2.]])
print(C.shape)
# torch.Size([6, 3])# 按维数1(列)拼接 A 和 D
C=torch.cat((A,D),1)
# tensor([[ 1.,  1.,  1.,  2.,  2.,  2.,  2.],
#         [ 1.,  1.,  1.,  2.,  2.,  2.,  2.]])
print(C.shape)
# torch.Size([2, 7])

另外,torch.cat((A,B),axis)还能把list中的tensor拼接起来。

import torchx = torch.Tensor([1, 2, 3])
x = x.unsqueeze(1)
x2 = torch.cat( [ x*2 for i in range (1,4) ], 1 )
# tensor([[2., 2., 2.],
#         [4., 4., 4.],
#         [6., 6., 6.]])

x = torch.Tensor([1, 2, 3])生成的xshapetorch.Size([3]),我们需要用x = x.unsqueeze(1)x增加第二个维度,使其变为二维的tensortorch.Size([3, 1])

关于升维函数 x.unsqueeze(axis) 和降维函数 x.unsqueeze(axis) 的详细说明,可以去我的另一篇博客增加维度或者减少维度 ——a.squeeze(axis) 和 a.unsqueeze(axis)

torch.cat( [ x*2 for i in range (1,4) ], 1 )先生成了一个包含 3tensorlist,然后对list中的元素按列拼接(axis=1)。
关于range这个基本的函数,见本人的另一篇博客创建一个整数列表—— range()
故最后的结果为:

# tensor([[2., 2., 2.],
#         [4., 4., 4.],
#         [6., 6., 6.]])

[PyTorch] 拼接多个tensor:torch.cat((A,B),axis)相关推荐

  1. PyTorch基础(五)----- torch.cat()方法

    cat是concatnate的缩写,concatnate的含义拼接,深度学习模型中最为常见的是通道拼接. 一.普通用法 dim = 1:表示将张量A.B按照维数1进行拼接,换句话说,就是按照列进行拼接 ...

  2. torch.cat()函数的官方解释,详解以及例子

    可以直接看最下面的例子,再回头看前面的解释,就很明白了. 在pytorch中,常见的拼接函数主要是两个,分别是: stack() cat() 一般torch.cat()是为了把多个tensor进行拼接 ...

  3. torch.cat 和 torch.stack

    torch.cat 和 torch.stack看起来相似但是性质还是不同的 使用python中的list列表收录tensor时,然后将list列表转化成tensor时,会报错.这个时候就要使用torc ...

  4. pytorch拼接函数:torch.stack()和torch.cat()--详解及例子

    原文链接: https://blog.csdn.net/xinjieyuan/article/details/105205326 https://blog.csdn.net/xinjieyuan/ar ...

  5. 【PyTorch】torch.cat==>张量拼接,在图像的应用上可以有效利用原始图像结构信息

    1. 字面理解:torch.cat是将两个张量(tensor)拼接在一起,cat 是 concatenate 的意思,即拼接,联系在一起. 使用torch.cat((A,B),dim)时,除拼接维数d ...

  6. 多维tensor/numpy array的拼接(np.stack, torch.cat)

    对于numpy array 当有如下情景,我需要4维tensor,(b,c,w,h), 而写的程序是单张图片遍历的,即每张图片(c,w,h),这时,就需要先用一个list,然后每次append,到最后 ...

  7. PyTorch的torch.cat

    字面理解:torch.cat是将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起. 例子理解 import torch A=torch.ones(2,3) # ...

  8. pytorch 中 torch.cat 函数的使用

    1. 字面理解:torch.cat是将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起. 2. 例子理解 >>> import torch ...

  9. torch的拼接函数_Pytorch中的torch.cat()函数

    cat( )的用法 按维数0拼接(竖着拼) C = torch.cat( (A,B),0 ) 按维数1拼接(横着拼) C = torch.cat( (A,B),1 ) 按维数0拼接 A=torch.o ...

最新文章

  1. [流水账]毕业?工作?
  2. 7. Vulnerability exploitation tools (漏洞利用工具 11个)
  3. ElasticSearch 从安装开始_01
  4. spark学习-Spark算子Transformations和Action使用大全(Transformations章(二))
  5. 简单三步,使用 Docker 搭建一个多端同步网盘!
  6. Java常用算法二:分治法
  7. InvalidClassException
  8. Atitit 泛型的知识点 目录 1. 为什么需要泛型 why 2 2. 定义分类 what 2 2.1. 编辑类型参数 2 2.2. 模板 2 2.3. 简单理解 占位符 代替object、 3
  9. 用OpenStack构建南方电网广东公司能源云
  10. 我的世界高亮显示服务器,waila(我的世界高亮显示没了)
  11. PDM,读《电商产品经理宝典:电商后台系统产品逻辑全解析》
  12. sony z及泛泰a870 安装optware记录
  13. js调用Python函数
  14. 关于position: sticky的简单用法
  15. 花儿还有重开日,人生没有再少年.
  16. App Store评论优化,让你的APP评论上涨
  17. 中公教育12月04日内外盘分析
  18. fx3u4ad一adp说明书_三菱PLC模块FX3U-4AD与FX3U-4AD-ADP的区别
  19. 淘宝、拼多多、京东等购物平台的优惠券公众号免费搭建持续更新
  20. 带你科学了解NAD是什么?NAD+是什么东西?

热门文章

  1. 2020最常用的8个代码编辑器推荐
  2. 百度地图api vue集成模板收录
  3. iview关闭抽屉弹层时清空Select弹框高亮样式
  4. hbase1.1.1 连接集群_HBase-1.2.1集群搭建
  5. java 从一个容器获取对象,Java 如何实现从spring容器中获取注入的bean对象
  6. 工作中JS语法的小整理以及vue小知识的收纳
  7. 【堆】Leetcode692:前k个高频单词
  8. 图像全参考客观评价算法比较
  9. oracle异机复制,oracle冷备份恢复和oracle异机恢复使用方法
  10. mysql 错误代码:1293