欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > tensor向量按任意维度进行切片、拆分、组合

tensor向量按任意维度进行切片、拆分、组合

2025/6/21 15:58:55 来源:https://blog.csdn.net/qq_41920323/article/details/148771579  浏览:    关键词:tensor向量按任意维度进行切片、拆分、组合

torch.index_select(input_tensor, 切片维度, 切片索引)

注意:切完之后,转onnx时会生成Gather节点;

torch自带切片操作

start : end : step:

范围前闭后开,将其放在哪个维度上,就对那个维度起作用

torch.cat((a, b) , dim)

已有的轴上拼接矩阵,默认轴为0,给定轴的维度可以不同,其余轴的维度必须相同
 

三个操作的组合使用例子如下:


import torchx = torch.randn(1, 18, 4, 4)# print("x:",x)
print("x.shape:",x.shape)indices_cls = torch.tensor([2, 5, 8, 11, 14, 17])
indices_point = torch.tensor([0,1, 3,4, 6,7, 9,10, 12,13, 15,16])kpt_point = torch.index_select(x, 1, indices_point)
kpt_cls = torch.index_select(x, 1, indices_cls)print("kpt_point.shape:",kpt_point.shape)
print("kpt_cls.shape:",kpt_cls.shape)x_2 = torch.cat([kpt_point[:,0:2:1,],kpt_cls[:,0:1:1,],kpt_point[:,2:4:1,],kpt_cls[:,1:2:1,],kpt_point[:,4:6:1,],kpt_cls[:,2:3:1,],kpt_point[:,6:8:1,],kpt_cls[:,3:4:1,],kpt_point[:,8:10:1,],kpt_cls[:,4:5:1,],kpt_point[:,10:12:1,],kpt_cls[:,5:6:1,]],1)# print("x_2:",x_2)
print("x_2.shape:",x_2.shape)

打印组合前后tensor的输出形状和内容发现,前后一致:

x.shape: torch.Size([1, 18, 4, 4])
kpt_point.shape: torch.Size([1, 12, 4, 4])
kpt_cls.shape: torch.Size([1, 6, 4, 4])   
x_2.shape: torch.Size([1, 18, 4, 4])   

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词