【发布时间】:2016-07-20 11:38:43
【问题描述】:
我正在寻找一种优雅的方式来选择满足某些约束的火炬张量子集。 例如,假设我有:
A = torch.rand(10,2)-1
而S 是一个 10x1 的张量,
sel = torch.ge(S,5) -- this is a ByteTensor
我希望能够做逻辑索引,如下:
A1 = A[sel]
但这不起作用。
所以有一个index 函数接受LongTensor,但我找不到将S 转换为LongTensor 的简单方法,除了以下内容:
sel = torch.nonzero(sel)
它返回一个 K x 2 张量(K 是 S >= 5 的值的数量)。那么我必须将它转换为一维数组,这最终允许我索引 A:
A:index(1,torch.squeeze(sel:select(2,1)))
这很麻烦;在例如Matlab 我所要做的就是
A(S>=5,:)
谁能提出更好的方法?
【问题讨论】: