首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >张量MNIST教程- cross_entropy计算

张量MNIST教程- cross_entropy计算
EN

Stack Overflow用户
提问于 2018-07-17 17:20:21
回答 2查看 260关注 0票数 0

我正在为tensorflow:学习本教程

它将交叉熵函数的实现描述为:

代码语言:javascript
复制
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))

首先,tf.log计算y的每个元素的对数,然后将y_的每个元素与tf.log(y)的对应元素相乘。然后tf.reduce_sum在y的第二维中添加元素,这是因为reduction_indices=1参数。最后,tf.reduce_mean计算批处理中所有示例的平均值。

我的理解是,阅读本教程时,y的实际值和预测值都是2D张量。行是您使用的大小为784的MNIST向量的数目,它表示列。

上面的引语说:“我们将y_的每个元素乘以tf.log(Y)的对应元素”。

我的问题是-我们在这里做传统的矩阵乘法吗,比如,行x列,因为句子表明我们不是?

EN

回答 2

Stack Overflow用户

发布于 2018-07-17 21:27:50

传统的矩阵乘法仅在计算模型hypothesis时使用,如代码中所示,将x乘以W

代码语言:javascript
复制
y = tf.nn.softmax(tf.matmul(x, W) + b)

代码块中的代码y_ * tf.log(y)

代码语言:javascript
复制
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y),
                                                  reduction_indices=[1]))

执行元素向乘法original targets => y_与日志的predicted targets => y.

计算交叉熵损失函数的目的是在分类问题中找出观测属于特定类别或组的概率。

正是这种度量(即交叉熵损失)被优化函数最小化,其中梯度下降是寻找W最佳参数集的一个流行例子,可以提高分类器的性能。我们认为损失是最小的,因为损失或误差成本越低,模型就越好。

票数 1
EN

Stack Overflow用户

发布于 2018-07-17 18:18:55

我们在这里按元素进行乘法:y_ * tf.log(y)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51387063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档