如何从np.array中包含的张量中选择值

时间:2019-01-08 20:38:33

标签: python numpy pytorch

我有一个很大的张量,我只想保留其中的选定张量。

背景-首先包含要预测的四边形的坐标。

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

第二个包含相同的坐标,但是使用NMS选择后进行了过滤,对于这个讨论,只是说我从张量中选择了9行。 8坐标+ 1置信度 但是NMS正在Numpy中完成,所以我分离了张量。

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])

0 个答案:

没有答案