我有一个张量为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中查找了一些功能,但发现它们都不适合我的任务
答案 0 :(得分:0)
您没有任何意义:C
仅选择以下条目的 part 时,shape
与A
的{{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