Tensorflow tf.sign如何与反向传播一起工作?
我从TensorFlow开始,尝试创建一个二进制网络。更具体地说,我正在寻找一个哈希网络,它将图像编码为大小为n的二进制向量。所以我有一个经典的网络,我对softmax之前的最后一层进行了二值化 TensorFlow提供了一个Tensorflow tf.sign如何与反向传播一起工作?,tensorflow,Tensorflow,我从TensorFlow开始,尝试创建一个二进制网络。更具体地说,我正在寻找一个哈希网络,它将图像编码为大小为n的二进制向量。所以我有一个经典的网络,我对softmax之前的最后一层进行了二值化 TensorFlow提供了一个tf.sign函数,可以做到这一点,但我无法理解反向传播在实践中是如何工作的,因为它不是连续的 有什么想法吗?不幸的是tf.sign()的梯度总是被定义为0(可能是因为没有好的方法来定义它。) @ops.RegisterGradient("Sign") def _Sign
tf.sign
函数,可以做到这一点,但我无法理解反向传播在实践中是如何工作的,因为它不是连续的
有什么想法吗?不幸的是
tf.sign()
的梯度总是被定义为0
(可能是因为没有好的方法来定义它。)
@ops.RegisterGradient("Sign")
def _SignGrad(op, _):
"""Returns 0."""
x = op.inputs[0]
return array_ops.zeros(array_ops.shape(x), dtype=x.dtype)