合并与分割
1.cat合并(concat)
合并1~4班的成绩单和5~9班的成绩单
Statistics about scores
[class1-4, students, scores]
[class5-9, students, scores]
a = torch.rand(4,32,8)
b = torch.rand(5,32,8)
torch.cat([a,b],dim=0).shape # torch.Size([9,32,8])
条件:cat的维度必须一样,其他可以不一样
2.stack合并(create new dim)
a = torch.rand(32,8)
b = torch.rand(32,8)
torch.stack([a,b],dim=0).shape # torch.Size([2,32,8])
#dim为0的位置上有两个数0和1,取0时为a中的元素,取1时为b中的元素
条件:所有的维度必须完全一样
3.split拆分(按长度拆)
c = torch.rand(3,32,8)
aa,bb = c.split([2,1],dim=0) # []里为拆分的几个长度
aa.shape,bb.shape # [2,32,8],[1,32,8]
aa,bb = c.split(1,dim=0) # 长度一致时,直接写固定长度。如,按每个长度都为1来拆
aa.shape,bb.shape # [1,32,8],[1,32,8]
4.chunk(按份数拆)
c = torch.rand(2,32,8)
aa,bb = c.chunk(2,dim=2) # 在dim为2的数据均分成2份
aa.shape,bb.shape # [2,32,4],[1,32,4]