как выбрать значения из тензора, содержащегося в np.array - PullRequest
0 голосов
/ 08 января 2019

У меня есть этот огромный тензор, из которого я просто хочу сохранить выбранные тензоры.

Фон - сначала содержит прогнозируемые четырехугольники.

np.shape(coords_detached) =  (15969, 8)
coords.shape() =   torch.Size([15969, 8])

Второй, содержит те же координаты, но отфильтрованные после выбора с использованием NMS, для этого обсуждения просто скажу, что я выбрал 9 строк из вышеупомянутого тензора. 8 координат + 1 показатель достоверности Но NMS делается просто, поэтому я отсоединяю тензоры.

coords_nms = torch.tensor(nms_coords_, dtype=torch.float32)

coords_nms.shape() =  torch.Size([9, 9])

Так что теперь я хочу выбрать только эти 9 строк из исходного тензора, потому что он имел информацию о градиенте, которая теряется во время detach () и numpy nms.

Я пробовал это:

s = torch.ones_like(nms_coords_)
s *=-1

nms_coords = torch.where(coords == coords_nms[:,:-1], coords, s)
nms_coords = nms_coords[nms_coords>=0]
nms_coords.reshape(-1, 8)

для итерации по coords, сопоставления со значением coords_nms и просто их сохранения. но ему нужно такое же измерение на axis=0

Итерационный цикл будет следующим, но как это сделать, используя тензорную запись:

poo = []
for x in coords:
    for z in nms_coords_:
       if sum(x[:] == z[:-1]) == 8 :
            poo.append(z[:-1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...