使用位运算符进行矩阵乘法

4
我想创建一个位掩码向量,用来掩盖哪些值大于给定的值。就像 [1, 2, 3, 4, 5] * [>3, >3, >3, >3, >3] = [0, 0, 0, 1, 1]。我希望能在theano上运行它,以获得更快的矩阵操作计算时间。是否有一种使用位运算或比特位来创建这个位掩码的线性代数过程?目前我正在循环遍历这个矩阵,并且我想使用theano将计算移动到GPU上,这需要进行更多的矩阵乘法。感谢你的帮助。

2
从您的向量中减去3并查看符号位? - DYZ
1个回答

3
您可以通过矩阵之间的逻辑运算获得精确的结果。 例如,
print((np.r_[1, 2, 3, 4, 5] > 3))

将会给予

[False False False  True  True]

如果您需要整数,可以采用以下方式

print((np.r_[1, 2, 3, 4, 5] > 3).astype(int) )

并获取

[0 0 0 1 1]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接