TL;博士:
我有两个pytorch张量:
t_1 = torch.Tensor([1, 2, 3, 4, 5, 6, 7, 8, 9])
t_2 = torch.Tensor([1, 5, 7])
期望的输出应该包含
t_2
的元素出现在t_1
中的索引,即:
output = torch.Tensor([0, 4, 6])
关键是所有操作都在GPU上执行,没有循环,而只是pytorch操作。该操作本身将用于非常大的张量。
长版:
第一个张量包含三角形网格的面。每个面都由 3 个指向各个顶点的索引来表征。存在 F 个面,因此张量的维数是
Fx3
。它只包含整数。
第二张量具有可变数量的潜在面。每个潜在的面孔也由 3 个指向各个顶点的索引来表征。但是,这些可能与第一个张量的顺序不同。面的数量在迭代之间发生变化,但不等于 F,因此
Nx3
其中 N!=F
。它只包含整数。
我想检查,第二个数组的每个潜在面的索引在第一个数组中是什么。这将帮助我使用预先计算的值,我已经为
t_1
.计算了
我当前的解决方案依赖于为张量中的每个三元组计算一个唯一值,从而展平二维数组并获得一维张量。然后我可以比较这些,但是,我无法有效地这样做。此外,我必须计算每张脸中三个索引的 6 种可能组合中的每一种。