我想建立一个神经网络,在最后一层有一个单独的输出神经元告诉我在图像上有一辆汽车的可能性(概率从0到1)。
我曾经使用tf.nn.softmax_cross_entropy_with_logits()和tf.nn.softmax()方法制作具有多个输出神经元的分类问题的神经网络。但是当标签矩阵中每个样本只有一列时,这些方法不起作用,因为softmax()方法总是返回1.
我尝试用tf.nn.sigmoid()和tf.nn.softmax_cross_entropy_with_logits()用tf.nn.sigmoid_cross_entropy_with_logits()替换tf.nn.softmax(),但这给了我一些奇怪的结果,我可能已经完成了实施中出了问题。
如何定义仅有一个输出神经元的神经网络的损失和预测?
答案 0 :(得分:1)
只需使用sigmoid层作为最后一层。当你有一个输出时,不需要任何交叉熵,所以让损失函数在sigmoid输出上工作,该输出仅限于你想要的输出范围。