TensorFlow MNIST 初学者需要一些了解评估步骤

Posted

技术标签:

【中文标题】TensorFlow MNIST 初学者需要一些了解评估步骤【英文标题】:Tensorflow MNIST beginners need some understanding evaluation step 【发布时间】:2016-04-11 07:56:50 【问题描述】:

我浏览了 TensorFlow 中评估训练模型的基本示例。它是这样说的:

accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
print(sess.run(accuracy, feed_dict=x: mnist.test.images, y_: mnist.test.labels))

我没有遵循此代码,训练有素的“模型”在哪里?还是 tf.reduce_mean(....) ?检查训练好的模型。

【问题讨论】:

问清楚你的问题,明确你的格式。学习如何提问。你的问题没有多大意义。 我对学习 TensorFlow 很感兴趣,但我意识到当我开始时,除了运行示例之外,我缺乏基本的词汇和概念。因此,为了了解基础知识,我求助于 Neural Networks and Deep Learning 和 Andrew Ng course videos 【参考方案1】:

正如“Guy Coder”所说,也许你应该在开始使用 tensorflow 之前查看其他在线资源或 MOOC。

但无论如何,也许你会得到一个更清晰的画面......

在 tensorflow 中训练模型分为两部分。

    首先声明模型的结构,包括不同的层和变量。 Tensorflow 会用它制作一个图表,但还没有发生任何计算。 然后你让 tensorflow “运行”并优化模型。您在这里所做的是告诉 tensorflow 您想要减少交叉熵或您定义的任何损失函数,因此您提供输入数据和图表需要计算的标签。

在此之后,您会提出一个经过训练的模型。也许您会想要保存模型并在以后重新使用它,但那是另一回事了。

所以,培训期间或培训结束后您可以致电 print(sess.run(accuracy, feed_dict=x: mnist.test.images, y_: mnist.test.labels))

这是告诉 tensorflow 使用带有变量当前值的图表来计算准确度(也许你正在训练中)。你正在为图像和标签提供这个精度函数。 TensorFlow 会取 x 值并尝试预测 y_,准确率将取决于他的表现。

与您的训练模型的连接来自correct_prediction 函数,该函数应将正确的输出与模型的预测进行比较,即y_ vs y

希望对你有帮助

编辑

我将根据您的 cmets 进行回答,但请注意,您的问题解释得非常糟糕......正如 S_kar 所指出的那样

要保存模型,您可以这样做:

# model declared before this line
with tf.Session() as sess:
    # Merge all the summaries and write them out to /tmp/tf
    merged = tf.merge_all_summaries()
    writer = tf.train.SummaryWriter("/tmp/tf", sess.graph_def)
    tf.initialize_all_variables().run()

    saver = tf.train.Saver()

    """
    train the model...
    """

    print "Model succesfuly trained"

    # now save the model in a subdirectory called "model"
    checkpoint_path = os.getcwd() + "/model/model.ckpt"
    saver.save(sess, checkpoint_path)
    print "Model saved"

要恢复模型,请查看this question

【讨论】:

我已经按照完整的 MNIST 示例说明了它的工作原理,但是从我看到我们获取数据、创建模型、训练模型和测试模型的方式来看。关键是这个模型对象在 TensorFlow 中的位置,我如何保存它并在应用程序中使用它,哪个对象是训练好的模型? Tensorflow 模型是如何保存和使用的? 您需要要求 OP 发布一个新问题。我知道新人习惯于讨论板,但 *** 不是讨论板。通过发布新问题,人们可以快速找到答案。 感谢这真的有帮助 很高兴它有帮助!在制定下一个问题时,请尝试更清楚

以上是关于TensorFlow MNIST 初学者需要一些了解评估步骤的主要内容,如果未能解决你的问题,请参考以下文章

Tensorflow 写给初学者的深度学习教程之 MNIST 数字识别

python 对于ML初学者,TensorFlowチュートリアル-MNIST

Tensorflow初学

TensorFlow/简单网络MNIST数据集-softmax全连接神经网络,卷积神经网络模型

在 MNIST 集上使用 TensorFlow 进行预测的困境

tensorflow学习笔记五:mnist实例--卷积神经网络(CNN)