【问题标题】:TensorFlow cross-entropy on tutorialTensorFlow 交叉熵教程
【发布时间】:2016-04-26 08:30:25
【问题描述】:

我刚刚浏览了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 如何知道我使用的cost functiongradient 是如何计算的?难道我们不应该有个地方告诉TensorFlow如何计算gradient吗?

谢谢!

【问题讨论】:

  • 梯度下降函数已经被编程。你可以在源代码中挖掘找到它。

标签: tensorflow


【解决方案1】:
  1. 当y = 1或0时,可以使用y_ * log(y) + (1-y_) * log(1-y),但是当y是one-hot编码时,y=[0 1 ] 或 [1 0],我们使用 y_ * log(y)。其实它们是一样的。

  2. TensorFlow 中的一切都是图,包括成本函数。

所以每个节点都知道他们的操作和局部梯度。 Tensorflow 使用反向传播(链式法则)来使用图计算梯度。

【讨论】:

  • 为什么所有的图都这么小?我一个都看不懂,包括这个。我可以下载 SVG 什么的吗?
  • @BSeven 我只是想显示“成本”是图中的一个节点。您可以运行 TensorBoard 以获得更好的图表。
  • 你也可以在 IPython notebook 中查看图表,就像完成 here 一样(查找 show_graph)
  • @YaroslavBulatov - 这很有帮助。谢谢。而关于“用 TensorFlow 实现的图像生成技术”的部分非常有趣。
  • 感谢宋,非常感谢!我是 TensorFlow 和 Python 的新手,我没有意识到 y_ 实际上是一个带有 [0 1] 或 [1 0] 的向量,我认为它是 0 或 1。我也没有见过 TensorBoard,我会看看吧。
猜你喜欢
  • 2016-09-18
  • 2017-07-20
  • 2019-05-23
  • 2017-02-08
  • 2018-05-31
  • 2019-07-13
  • 2018-04-12
  • 2017-04-03
  • 2017-11-11
相关资源
最近更新 更多