将longtensor格式的索引转换为torch中的二进制选择掩码

时间:2016-07-15 02:40:25

标签: lua deep-learning 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的方法,以便我可以就地更改imageLabels中的某些值。

有没有办法做到这一点?据我所知,文档:index,:narrow operations返回一个全新的Tensor。

2 个答案:

答案 0 :(得分:0)

正确,:index,narrow返回一个新的张量,新张量使用与文档here中所述相同的原始存储:"对于方法narrow,select和sub返回的张量共享相同存储为原始"

答案 1 :(得分:0)

我最终使用了indexFill。

targetTensor:indexFill(1,indices,0)

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

希望这会有所帮助。一切都在文档中。我们必须耐心地阅读。