2016-07-15 39 views
0

我有一个LongTensor,它包含我想从另一个张量获得的所有索引。如何将此LongTensor转换为可用作选择掩码的ByteTensor。将longtensor格式的索引转换为火炬中的二进制选择掩码

假设,

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改变一些值。

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

回答

0

我结束了使用indexFill。

targetTensor:indexFill(1,索引,0)

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

希望这会有所帮助。它的所有文档。我们必须耐心阅读。

0

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