Hello,
l have a following 2d numpy array called coordinates. for instance
coordinates[:5]
[[86 11]
[74 3]
[90 9]
[84 8]
[98 88]]
l process coordinates in order to return an (x,y) vector as follow ; get min x then (min_x, look min y). From a list of (x_min,y) vectors we choose (x_min, y) where is y is min. To do so in numpy l did the following :
coordinates=np.asarray(coordinates)
xmin_value=np.min(coordinates[:,0])
min_x_vectors = coordinates[np.where(coordinates[:, 0] == xmin_value)]
minimum = np.argmin(min_x_vectors[:, 1])
x0,y0=min_x_vectors[minimum]
My question how to do the same in pytorch ?
coordinates=coord_train.astype(np.int64)
coordinates=torch.LongTensor(coord_train).type(dtypeLong)
coordinates=Variable(coord_train, requires_grad=False)
coordinates
Variable containing:
86 11
74 3
90 9
84 8
98 88
[torch.cuda.LongTensor of size 5x2 (GPU 0)]
l can retrieve the min as follow :
xmin_value=coordinates[:,0].min()
However l’m not sure how to deal with argmin and np.where in pytorch for :
min_x_vectors = coordinates[np.where(coordinates[:, 0] == xmin_value)]
minimum = np.argmin(min_x_vectors[:, 1])
x0,y0=min_x_vectors[minimum]
Temporarily l did the following :
coordinates=coordinates.cpu()
coordinates=coordinates.data
coordinates=coordinates.numpy()
coordinates=np.asarray(coordinates)
Thank you