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

时间:2016-01-07 02:34:24

标签: machine-learning classification 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}))

我没有遵循此代码,受过培训的模型&#39 ;?还是 tf.reduce_mean(....)?检查训练有素的模型。

1 个答案:

答案 0 :(得分:4)

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

但无论如何,也许你会对此有更清晰的了解......

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

  1. 首先,使用不同的图层和变量声明模型的结构。 Tensorflow将制作一个图表,但尚未发生任何计算。
  2. 然后你要求tensorflow“运行”并优化模型。你在这里做的是告诉tensorflow你想减少交叉熵,或者你定义的任何损失函数,所以你提供输入数据和图形需要计算的标签。
  3. 在此之后,你想出了一个训练有素的模特。也许你会想要保存模型并在以后重复使用它,但这是另一个故事。

    因此,在培训期间或完成后,您可以致电print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

    这是告诉tensorflow使用图表和变量的当前值计算精度(也许你正处于训练中)。并且您正在为图像和标签提供此精度功能。 Tensorflow将采用x值并尝试预测y_,准确度将取决于他的表现。

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

    希望这有帮助

    修改

    我会根据你的评论回答,但请注意你的问题解释得很差......正如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