将LongTensor格式的索引转换为用于Torch的二进制选择掩码

我有一个LongTensor,其中包含我从另一个张量中想要的所有索引。我如何将此LongTensor转换为可以用作选择掩码的ByteTensor。

假设,

th> imageLabels:size()
 17549
     3
[torch.LongStorage of size 2]

                                                                      [0.0001s]
th> indices
  1
 22
 32
[torch.LongTensor of size 3]

我需要一种使用“[index]”符号访问imageLabels的方法,以便我可以在原地更改一些值。

有没有办法做到这一点?据我从文档中理解的,:索引,:缩小操作返回一个全新的张量。

点赞
用户6581763
用户6581763

正确的是,:indexnarrow会返回一个新的张量,这个新的张量使用了与文档这里中描述的原始存储相同的存储位置:"对于narrowselectsub方法,返回的张量与原始张量共享相同的存储器"。

2016-07-19 06:56:32
用户846970
用户846970

我最终使用了 indexFill

targetTensor:indexFill(1, indices, 0)
  • 第一个参数是维度,
  • indices 是包含所有我们感兴趣的索引的 LongTensor
  • 0 是要填充的值。可以是任何数字

希望这有所帮助。所有的信息都在文档中。我们必须耐心阅读。

2016-07-19 20:27:34