权重可以限制为二进制吗?

时间:2019-01-25 21:26:03

标签: tensorflow deep-learning

我正在写一个加权层,该层基本上将每个输入像素乘以一个权重(Hadamard)。我想将这些权重限制为二进制(0或1)。在Tensorflow(或任何其他框架)中是否有办法实现这一目标?

我知道Bengio等人对此进行了一些学术研究。等可能还有其他,但是当前框架有什么可以做的吗?

此致

1 个答案:

答案 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