Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用条件匹配两个不同pytorch张量中的值_Pytorch - Fatal编程技术网

如何使用条件匹配两个不同pytorch张量中的值

如何使用条件匹配两个不同pytorch张量中的值,pytorch,Pytorch,我有4个张量 ib0 = torch.tensor([14,17]) bb0 = torch.tensor([0,1]) ib1 = torch.tensor([17,4,2]) bb1 = torch.tensor([0,0,1]) 我需要得到另一个张量,它根据bb0和bb1的值匹配ib0和ib1中的值。我想要的结果是 torch.tensor([[14,17],[14,4],[17,2]]) 因为ib0中0(来自bb0)的索引值为14,而0(来自bb1)的索引值为17,4,这与bb0中1

我有4个张量

ib0 = torch.tensor([14,17])
bb0 = torch.tensor([0,1])
ib1 = torch.tensor([17,4,2])
bb1 = torch.tensor([0,0,1])
我需要得到另一个张量,它根据bb0和bb1的值匹配ib0和ib1中的值。我想要的结果是

torch.tensor([[14,17],[14,4],[17,2]])
因为ib0中0(来自bb0)的索引值为14,而0(来自bb1)的索引值为17,4,这与bb0中1的索引值相似。
在波束搜索算法中,需要将来自同一波束的索引合并在一起。bb0和bb1张量是梁指数,而ib0、ib1是两个梁0和1的指数。因此,上述过程只是确保不同光束的折射率不会合并的一种方法

既然
bb0
bb1
具有不同的长度,如何将它们合并到单个输出中?你能以一些代码的形式提供逻辑吗?例如,使用numpy或
进行循环或类似的操作。@a_uucode>[(ib0[x],ib1[y])进行范围内的x(len(bb0))进行范围内的y(len(bb1)),如果bb0[x]==bb1[y]
@a_guest是否有更有效的方法在numpy/pytorch中使用索引进行上述操作?你说你需要这项功能来进行测试波束合并算法“,我不确定那是什么,但听起来总有两个光束?因此,
bb0
bb1
张量只包含1和0?或者你想最终堆叠两个以上的梁吗?不是真正的@a_guest。对不起,我应该提到可以有任意数量的梁。因此不需要使用循环