深度学习pytorch——拼接与拆分(持续更新)

cat拼接

使用条件:合并的dim的size可以不同,但是其它的dim的size必须相同。

语法:cat([tensor1,tensor2],dim = n) # 将tensor1和tensor2的第n个维度合并

代码演示:

python 复制代码
# 拼接与拆分
a = torch.rand(4,32,8)
b = torch.rand(5,32,8)
print(torch.cat([a,b],dim=0).shape)     # torch.Size([9, 32, 8])

stack拼接

为什么要使用stack?下面会举个例子阐述一下原因:

A [32, 8] # 一个班,一共有32个同学,每个同学有8门成绩

B [32, 8] # 一个班,一共有32个同学,每个同学有8门成绩

cat:[64, 8] # 一个班,一共有64个同学,每个同学有8门成绩,不符合实际

stack: [2, 32, 8] # 2个班,每个班有32个同学,每个同学有8门成绩,符合实际

使用条件:A.shape = B.shape

代码演示:

python 复制代码
a = torch.rand(32,8)
b = torch.rand(32,8)
print(torch.cat([a,b],dim=0).shape)     # torch.Size([64, 8])
print(torch.stack([a,b],dim=0).shape)   # torch.Size([2, 32, 8])

split------根据长度拆分

语法:split(len, dim = n) # 在第n个维度拆分,每个size=len

代码演示:

python 复制代码
# c.shape = torch.Size([2, 32, 8])
aa, bb = c.split(1,dim=0)
print(aa.shape,bb.shape)                # torch.Size([1, 32, 8]) torch.Size([1, 32, 8])

注意:不要超过第0维的总体长度2,等于也不行,别忘了split进行的是拆分。

chunk------根据数量拆分

语法:chunk(num, dim = n) # 在第n维进行拆分,拆分为num份

代码演示:

python 复制代码
# c.shape = torch.Size([2, 32, 8])
aa, bb = c.chunk(2,dim = 0)
print(aa.shape,bb.shape)                # torch.Size([1, 32, 8]) torch.Size([1, 32, 8])
相关推荐
康谋自动驾驶8 分钟前
康谋分享 | 自动驾驶仿真进入“标准时代”:aiSim全面对接ASAM OpenX
人工智能·科技·算法·机器学习·自动驾驶·汽车
深蓝学院1 小时前
密西根大学新作——LightEMMA:自动驾驶中轻量级端到端多模态模型
人工智能·机器学习·自动驾驶
归去_来兮2 小时前
人工神经网络(ANN)模型
人工智能·机器学习·人工神经网络
2201_754918412 小时前
深入理解卷积神经网络:从基础原理到实战应用
人工智能·神经网络·cnn
强盛小灵通专卖员2 小时前
DL00219-基于深度学习的水稻病害检测系统含源码
人工智能·深度学习·水稻病害
Luke Ewin2 小时前
CentOS7.9部署FunASR实时语音识别接口 | 部署商用级别实时语音识别接口FunASR
人工智能·语音识别·实时语音识别·商用级别实时语音识别
白熊1882 小时前
【计算机视觉】OpenCV实战项目:Face-Mask-Detection 项目深度解析:基于深度学习的口罩检测系统
深度学习·opencv·计算机视觉
Joern-Lee2 小时前
初探机器学习与深度学习
人工智能·深度学习·机器学习
云卓SKYDROID3 小时前
无人机数据处理与特征提取技术分析!
人工智能·科技·无人机·科普·云卓科技
R²AIN SUITE3 小时前
金融合规革命:R²AIN SUITE 如何重塑银行业务智能
大数据·人工智能