import torch
range_vec_k = torch.arange(5)
distance_mat1 = range_vec_k[None, :]
distance_mat2 = range_vec_k.view(1, -1)
img_size = num_patches = 7
rel_indices = torch.zeros(1, num_patches, num_patches, 3)
ind = torch.arange(img_size).view(1, -1) - torch.arange(img_size).view(-1, 1)
indx = torch.arange(img_size).view(1, -1)
indy = torch.arange(img_size).view(-1, 1)
print(ind)
tensor([[ 0, 1, 2, 3, 4, 5, 6],
[-1, 0, 1, 2, 3, 4, 5],
[-2, -1, 0, 1, 2, 3, 4],
[-3, -2, -1, 0, 1, 2, 3],
[-4, -3, -2, -1, 0, 1, 2],
[-5, -4, -3, -2, -1, 0, 1],
[-6, -5, -4, -3, -2, -1, 0]])
ind = torch.clamp(ind[:,:],min=0)
print(ind)
tensor([[0, 1, 2, 3, 4, 5, 6],
[0, 0, 1, 2, 3, 4, 5],
[0, 0, 0, 1, 2, 3, 4],
[0, 0, 0, 0, 1, 2, 3],
[0, 0, 0, 0, 0, 1, 2],
[0, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 0, 0, 0]])