我有一个很大的张量,我只想保留其中的选定张量。
背景-首先包含要预测的四边形的坐标。
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])