用:索引和原生python没有什么区别,在这里就不写了
index_select
a=torch.randn(4,3,28,28)
print(a.index_select(0,torch.IntTensor([0,2])).shape)
index_select方法第一个参数表示在哪一维度上操作,第二个参数表示要找这一个维度上的范围,第二个参数必须是一个张量,不能是list
用…索引
a=torch.randn(4,3,28,28)
print(a[...].shape)
print(a[0,...].shape)
print(a[:,1,...].shape)
print(a[...,:2].shape)
看结果应该就能明白
mask索引
会把张量展平
x=torch.randn(3,4)
print(x)
mask=x.ge(0.5) # 大于0.5的位置标记ture
print(mask)
print(torch.masked_select(x,mask)) # 把mask标记为ture的地方的值拿出来
print(torch.masked_select(x,mask).shape)
torch.take
将向量展平