TensorFlow交叉熵教程

时间:2016-04-25 14:37:39

标签: tensorflow

我刚刚完成TensorFlow教程(https://www.tensorflow.org/versions/r0.8/tutorials/mnist/pros/index.html#deep-mnist-for-experts)。

我有两个问题:

  1. 为什么使用cost function with y_ * log(y)?不应该是y_ * log(y) + (1-y_) * log(1-y)

  2. TensorFlow如何知道如何计算我使用的gradient的{​​{1}}?我们不应该在某处告诉cost function如何计算TensorFlow吗?

  3. 谢谢!

1 个答案:

答案 0 :(得分:5)

  1. 当y = 1或0时,您可以使用y_ * log(y)+(1-y_)* log(1-y),但是当y是单热编码时,y = [0 1 ]或[1 0],我们使用y_ * log(y)。事实上,它们是一样的。

  2. TensorFlow中的所有内容都包含您的费用函数。

  3. enter image description here

    因此每个节点都知道它们的操作和局部梯度。 Tensorflow使用反向传播(链规则)使用图形计算梯度。