pytorch特殊索引切片

pytorch中None索引的效果是添加一个维度

a = torch.randn([3, 224, 224])
b = a[:, None, :, :]
print(a.shape)
print(b.shape)

运行结果:

torch.Size([3, 224, 224])
torch.Size([3, 1, 224, 224])

另外 …索引是代表往后全部的意思

a = torch.randn([3, 224, 224])
b = a[0, ...]
c = a[0, :, :]
print(a.shape)
print(b.shape)
print(c.shape)

运行结果,b和c是一样的:

torch.Size([3, 224, 224])
torch.Size([224, 224])
torch.Size([224, 224])

加在前面也可以

a = torch.randn([3, 224, 224])
b = a[..., 0]
c = a[:, :, 0]
print(a.shape)
print(b.shape)
print(c.shape)

运行结果:

torch.Size([3, 224, 224])
torch.Size([3, 224])
torch.Size([3, 224])

索引加上::时,维度不会发生变化

a = torch.randn([1, 3, 224, 224])
b = a[0, ...]
c = a[0::, ...]
print(a.shape)
print(b.shape)
print(c.shape)

结果:

torch.Size([1, 3, 224, 224])
torch.Size([3, 224, 224])
torch.Size([1, 3, 224, 224])

版权声明:本文为qq_21550483原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。