如何从张量中选择张量

时间:2019-07-02 02:21:58

标签: numpy pytorch

我有一个张量为A的张量[N1, N2, N3/2, 2, N4, N5]。另一个张量B是尺寸为[N1, N2, N3/2] = 1,0,0,0,1...的布尔索引张量。
现在,我想使用索引C获得尺寸为[N1, N2, N3/2, N4, N5]的子张量B
如何用pytorch来实现呢?
请注意,我不倾向于使用for-loop,因为它非常慢。

我在pytorch中查找了一些功能,但发现它们都不适合我的任务

1 个答案:

答案 0 :(得分:0)

您没有任何意义:C仅选择以下条目的 part 时,shapeA的{​​{1}}相同B复制到A ??

假设C具有B个非零元素(即k从大小为B的{​​{1}}矩阵中选择k个元素在N1*N2*N3/2中,则N4*N5只能具有A的形状C

您可以使用nonzero()[k, N4, N5]从逻辑索引转换为k < N1*N2*N3/2整数索引,然后使用它们来选择B元素

k