2017-04-16 91 views
0

我正在尝试使用Tensorflow进行分类的一个非常简单的示例。而不是使用one-hot vector,tf.nn.softmax和logittropy损失。我想使用0/1标签的离散情况。 NN模型的输出为0或1.因此,我做了这样的y_ = tf.nn.sigmoid(tf.matmul(hidden,weight2)+ bias2) y_ = tf.cast(tf.greaterequal(y ,0.5),tf.float32)所以这会给张量0或1.但是当我尝试训练这给了我错误说没有梯度提供。这是完整的代码。 https://gist.github.com/kris-singh/54aecbc1d61f1d7d79a43ae2bfac8516我的问题我想要做的是在tf还是不行?如果是的话如何?在Tensorflow中使用离散标签进行分类

+1

我认为不可能像使用tf.greaterequal()一样使用一些最大函数和梯度下降优化器。我无法想象这样的优化器应该如何处理离散的网络输出。您可以允许使用sigmoid连续输出网络,并仅执行cast()和其他greaterequal()操作来测量某种分类准确性,而不是用于训练本身。 – ml4294

+0

是....感谢我一直在思考相同的路线,我明白,后向传播将不适用于计算图中的“投射”节点。但是,当用笔和纸来计算时,这对我来说似乎很合理。在这种情况下,传播的错误将为0或1。这是否有道理? –

回答

0

我认为评论回答了问题。