欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 【pytorch05】索引与切片

【pytorch05】索引与切片

2025/2/23 16:48:07 来源:https://blog.csdn.net/qq_45291280/article/details/139902755  浏览:    关键词:【pytorch05】索引与切片

索引

在这里插入图片描述
a[0,0]第0张图片的第0个通道
a[0,0,2,4]第0张图片,第0个通道,第2行,第4列的像素点,dimension为0的标量

选择前/后N张图片

在这里插入图片描述
a[:2,:1,:,:].shape前两张图片,第1个通道上的所有图片的数据

a[:2,1:,:,:].shape前两张图片,取第一个通道开始,也就是G,B通道,通道的索引为[0,1,2],我们是从1开始到最末尾,所以取得是1通道和2通道即G和B

a[:2,-1:,:,:].shape前两张图片,从最后一个通道开始取到最后一个通道

选择步长

在这里插入图片描述

选择具体的索引

在这里插入图片描述
a.index_select(0,torch.tensor([0,2])).shape第一个参数为对哪一个维度进行操作,第二个参数给的是索引号不能直接以list的方式给,必须把list转化为tensor

a.index_select(1,torch.tensor([1,2])).shape

…任意多维度

在这里插入图片描述
[B,C,H,W]
a[0,...,::2]根据推测3个点代表任意长,从0维度开始,::2表示最后一个维度,当有…出现时,右边的索引需要理解为最右边,因此…表示的是C维度和H维度,所以这里想要表示的是,第0个图片取所有的channel和height,列每隔一个单位取一个会变成[3,28,14]

…仅仅是为了方便

掩码索引

在这里插入图片描述
x.ge(0.5)大于等于0.5的元素的位置置为1,得到这样的一个掩码,虽然显示的是torch.uint8类型但实际是ByteTensor类型,然后根据掩码来取,把掩码为1的元素取出来,因此会得到3个大于等于0.5的元素,通过mask_select得到的tensor的shape跟原来的tensor是没有关系的,之所以打平是因为大于0.5的元素个数是根据内容确定的

在这里插入图片描述
torch.take(src,torch.tensor([0,2,5]))先把tensor打平,比如把这里的[2,3]打平成[6]变成dimension为1,size为6的tensor,再去打平以后的编码

版权声明:

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

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

热搜词