Tensorflow MNIST 初学者需要理解评估步骤

我研究了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之前应该查看其他在线资源或MOOC课程。

但无论如何,也许你会通过这个得到更清晰的画面…

在Tensorflow中训练模型有两个部分。

  1. 首先,你声明模型的结构,包括不同的层和变量。Tensorflow会基于此创建一个图,但还没有进行任何计算。
  2. 然后,你要求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

希望这对你有帮助

编辑

我将根据你的评论来回答,但请注意你的问题解释得非常不好…正如@某人指出的那样

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

# 模型在此行之前声明with tf.Session() as sess:    # 合并所有摘要并将它们写入/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()    """    训练模型...    """    print "模型成功训练"    # 现在将模型保存到名为“model”的子目录中    checkpoint_path = os.getcwd() + "/model/model.ckpt"    saver.save(sess, checkpoint_path)    print "模型已保存"

要恢复模型,请查看 这个问题

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注