[PyTorch]PyTorch中张量(Tensor)拼接和拆分操作

PyTorch深度学习总结

第四章 PyTorch中张量(Tensor)拼接和拆分操作


文章目录


前言

上文介绍了PyTorch中张量(Tensor)的切片操作,本文主要介绍张量的拆分拼接操作。


一、张量拼接

函数 描述
torch.cat() 将张量按照指定维度关系进行拼接
torch.stack() 将张量按照指定维度关系进行拼接(用法同cat相同
python 复制代码
# 引入库
import torch

# 创建张量
A = torch.arange(9).reshape(1, 3, 3)
print(A)

输出结果为:

tensor(

[[[0, 1, 2],

[3, 4, 5],

[6, 7, 8]]])


1、按照维度1进行拼接:

python 复制代码
B0 = torch.cat((A, A), dim=0)
print(B0)

输出结果为:

tensor([[[0, 1, 2],

[3, 4, 5],

[6, 7, 8]],

[[0, 1, 2],

[3, 4, 5],

[6, 7, 8]]])


1、按照维度2()进行拼接:

python 复制代码
B1 = torch.cat((A, A), dim=2)
print(B1)

输出结果为:

tensor([[[0, 1, 2],

[3, 4, 5],

[6, 7, 8],

[0, 1, 2],

[3, 4, 5],

[6, 7, 8]]])


1、按照维度3()进行拼接:

python 复制代码
B2 = torch.cat((A, A), dim=2)
print(B2)

输出结果为:

tensor([[[0, 1, 2, 0, 1, 2],

[3, 4, 5, 3, 4, 5],

[6, 7, 8, 6, 7, 8]]])

二、张量拆分

函数 描述
torch.chunk() 将张量分割为特定数量的块(当张量对应维度元素数量不足以拆分时会按照可以拆分数量进行拆分,且会出现不均等拆分情况)
torch.split() 将张量分割为特定数量的块,可以指定块的大小

注意:
torch.chunk():当张量对应维度元素数量不足以拆分时,会按照可以拆分的最大数量进行拆分,且会出现不均等拆分情况,且最后一个块最小

下文使用B0进行示例

B0 = tensor([[[0, 1, 2],
         [3, 4, 5],
         [6, 7, 8]],
        [[0, 1, 2],
         [3, 4, 5],
         [6, 7, 8]]])

1、torch.chunk()按照维度1进行拆分:

python 复制代码
C1, C2 = torch.chunk(B0, 2, dim=1) # 维度1只有三组元素,所以会按照2:1的比例进行拆分
print(C1, C2)

输出结果为:

tensor([[[0, 1, 2],

[3, 4, 5],

[6, 7, 8]]])

tensor([[[0, 1, 2],

[3, 4, 5],

[6, 7, 8]]])


1、torch.chunk()按照维度2进行拆分:

python 复制代码
D1, D2 = torch.chunk(B0, 2, dim=1) # 3表示指定拆分数,但由于不足以拆分,所以只会拆分两组
print(D1, D2)

输出结果为:

tensor([[[0, 1, 2],

[3, 4, 5]],

[[0, 1, 2],

[3, 4, 5]]])

tensor([[[6, 7, 8]],

[[6, 7, 8]]])

相关推荐
兆。2 分钟前
掌握 PyQt5:从零开始的桌面应用开发
开发语言·爬虫·python·qt
杰说新技术3 分钟前
Meta AI最新推出的长视频语言理解多模态模型LongVU分享
人工智能·aigc
说私域7 分钟前
基于开源 AI 智能名片、S2B2C 商城小程序的用户获取成本优化分析
人工智能·小程序
东胜物联26 分钟前
探寻5G工业网关市场,5G工业网关品牌解析
人工智能·嵌入式硬件·5g
南宫理的日知录36 分钟前
99、Python并发编程:多线程的问题、临界资源以及同步机制
开发语言·python·学习·编程学习
皓74137 分钟前
服饰电商行业知识管理的创新实践与知识中台的重要性
大数据·人工智能·科技·数据分析·零售
coberup1 小时前
django Forbidden (403)错误解决方法
python·django·403错误
985小水博一枚呀1 小时前
【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer
龙哥说跨境1 小时前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
AltmanChan1 小时前
大语言模型安全威胁
人工智能·安全·语言模型