[]索引
import torch
a = torch.Tensor(4, 3, 28, 28)
print(a.shape)
print(a[0].shape)
print(a[0][0].shape)
print(a[0][0][0][0])
:索引
import torch
a = torch.Tensor(4, 3, 28, 28)
b = a[:2]
print(b.shape)
c = a[:2, :1]
print(c.shape)
d = a[1:]
print(d.shape)
e = a[-1:]
print(e.shape)
- 可以把:看作一个左闭右开的区间,左右不填就分别是开头和结尾
- 负数索引就是反向索引,最后一个是-1,倒数第二是-2,见下图
隔行取样 ::
import torch
a = torch.Tensor(4, 3, 28, 28)
b = a[0:4, 0:3, 0:28:2, 0:28:2]
print(b.shape)
c = a[0:4, 0:3, 0:28:27, 0:28:27]
print(c.shape)
- 第三个参数的意思是每n个选取一个,或者隔n-1个选一个
- 不常用的话容易弄混,可以多试试看
任意取样本
import torch
a = torch.Tensor(4, 3, 28, 28)
b = a.index_select(0, torch.tensor([0, 1, 3]))
print(b.shape)
省略其他 …
import torch
a = torch.Tensor(4, 3, 28, 28)
b = a[0,...]
print(b.shape)
c = a[:2, 1:, ...]
print(c.shape)
d = a[..., :2, :]
print(d.shape)