This method is equivalent to do a serie of
narrow
up to the first 4 dimensions. It returns
a new Tensor
which is a sub-tensor going from index dimis
to dimie
in
the =i=-th dimension. Negative values are interpreted index starting from the end:
-1
is the last index, -2
is the index before the last index, ...
> x = torch.Tensor(5, 6):zero() > print(x) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [torch.Tensor of dimension 5x6] > y = x:sub(2,4):fill(1) -- y is sub-tensor of x: > print(y) -- dimension 1 starts at index 2, ends at index 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 [torch.Tensor of dimension 3x6] > print(x) -- x has been modified! 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 [torch.Tensor of dimension 5x6] > z = x:sub(2,4,3,4):fill(2) -- we now take a new sub-tensor > print(z) -- dimension 1 starts at index 2, ends at index 4 -- dimension 2 starts at index 3, ends at index 4 2 2 2 2 2 2 [torch.Tensor of dimension 3x2] > print(x) -- x has been modified 0 0 0 0 0 0 1 1 2 2 1 1 1 1 2 2 1 1 1 1 2 2 1 1 0 0 0 0 0 0 [torch.Tensor of dimension 5x6] > print(y:sub(-1, -1, 3, 4)) -- negative values = bounds 2 2 [torch.Tensor of dimension 1x2]