我一直在慢慢地学习TensorFlow教程,我猜我还得再看一遍。我没有机器学习的背景,但正在慢慢地提升自己。
无论如何,在阅读了RNN教程并运行了训练代码后,我感到困惑。
如何实际应用训练好的模型,以便它可以用来进行语言预测呢?
我知道这是一个非常初级且简单的问题,但我相信这对其他人会有帮助,因为我看到这个问题被问过,但没有得到令人满意的回答。
回答:
一般来说,当你训练一个模型时,你首先进行前向传播,然后进行反向传播。前向传播基于你的输入数据做出预测,反向传播根据预测的正确性调整你的模型。
所以,当你想要应用你的模型时,你只需用新的数据作为输入进行前向传播即可。
在你的特定例子中,使用这个代码,你可以通过查看他们如何运行测试集,从第286行开始,了解这是如何实现的。
# 他们用is_training=False实例化模型test = PTBModel(is_training=False, config=eval_config)# 然后他们可以进行前向传播test_perplexity = run_epoch(session, mtest, test_data, tf.no_op())print("测试困惑度: %.3f" % test_perplexity)
如果你想要实际的预测而不是困惑度,它是run_epoch函数中的状态:
cost, state, _ = session.run([m.cost, m.final_state, eval_op], {m.input_data: x, m.targets: y, m.initial_state: state})