按位或2个张量火炬

时间:2016-07-13 01:57:21

标签: lua torch

如何在割炬中对两个张量执行按位和/或操作?

让我们说我有两个ByteTensors a和b,我想计算逻辑和/或它们之间。是否可以使用函数来完成它?

2 个答案:

答案 0 :(得分:2)

不确定这是否是您所寻求的但可能有所帮助。

z = torch.cmul(x,y) -- This gives and
th> z
 0
 1
 0
 0
 0
 0
 1
[torch.ByteTensor of size 7]

z1 = torch.add(x,y)
z1[z1:gt(1)] = 1 -- removes double counting

th> z1
 1
 1
 0
 1
 0
 1
 1
[torch.ByteTensor of size 7]

或者

document.getElementById('myform').addEventListener('submit', function(event) {
    event.preventDefault();
    this.submit();
    setTimeout(function(){ grecaptcha.reset(myCaptcha); }, 0);
}

答案 1 :(得分:0)

Torch中的张量没有按位和/或操作。但是,如果您可以将每个位转换为单独的Tensor维度(例如,在数据准备步骤或使用bitop),则可以使用Torch.any(x)作为元素或操作。

更新:将torch.cmul和torch.add用作mattdns suggests

更有意义
a = torch.Tensor{0,1,1,0}
b = torch.Tensor{0,1,0,1}

th> torch.cmul(a,b):eq(1)
 0
 1
 0
 0
[torch.ByteTensor of size 4]

th> torch.add(a,b):ge(1)
 0
 1
 1
 1
[torch.ByteTensor of size 4]