【问题标题】:What is the correct way to calculate error for MNIST计算 MNIST 误差的正确方法是什么
【发布时间】:2017-03-21 00:34:39
【问题描述】:

识别 MNIST 数据库的网络的输出是对 10 个类别的预测,即对于 1000 张图像,我们将有大小为 (1000, 10) 的矩阵。哪种方式更好地代表成本函数(为什么?):

  • 简单的tf.squared_difference(Y_pred, Y_pred)?
  • 平均超过批次tf.reduce_mean(tf.tf.squared_difference(Y_pred, Y_pred), axis=0)
  • 或平均超过类然后超过批次tf.reduce_men(tf.reduce_mean(tf.tf.squared_difference(Y_pred, Y_pred), axis=1))

谢谢

【问题讨论】:

  • 欢迎来到 StackOverflow。请阅读并遵循帮助文档中的发布指南。 on topichow to ask 在这里申请。 StackOverflow 不是设计、编码或教程服务。展示您的工作,将未解决的问题减少到一个小的单点,然后您就可以在此站点上寻求帮助了。

标签: machine-learning tensorflow neural-network mnist


【解决方案1】:

由于您的目标是类别(从 0 到 9 的数字),最好使用 cross entropy cost function,并执行以下操作:

cross_entropy = -tf.reduce_sum(Y * tf.log(Y_pred + 1e-10))
optimizer = tf.train.AdamOptimizer(0.001).minimize(cross_entropy)

这里Y是真实的目标值,Y_pred是预测的目标值。 这是discussion 交叉熵对分类问题的均方误差的好处。

【讨论】:

    猜你喜欢
    • 2012-05-07
    • 2017-03-05
    • 2021-05-29
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 2011-01-17
    相关资源
    最近更新 更多