我正在写一个加权层,该层基本上将每个输入像素乘以一个权重(Hadamard)。我想将这些权重限制为二进制(0或1)。在Tensorflow(或任何其他框架)中是否有办法实现这一目标?
我知道Bengio等人对此进行了一些学术研究。等可能还有其他,但是当前框架有什么可以做的吗?
此致
答案 0 :(得分:0)
我想将这些权重限制为二进制(0或1)
Tensorflow提供bool datatype来存储二进制数据。使用bool数据类型时请务必小心,因为bool数据类型不允许数字类型允许的某些操作。例如,您不能将*
+
-
等用于bool数据类型。但是您可以使用诸如&
(逻辑and
)|
(逻辑or
)之类的操作。
例如
a = tf.Variable([False], dtype=tf.bool)
b = tf.Variable([True], dtype=tf.bool)
c = a | b
d = a & b
f = ~a