我一直在慢慢阅读tensorflow教程,我想我将不得不再次。我没有ML的背景,但我慢慢地向上推。
无论如何,在阅读RNN tutorial并运行训练代码后,我很困惑。
如何实际应用经过训练的模型,以便可以用它来进行语言预测?
我知道这是一个可怕而又简单的问题,但我相信它会对其他人有用,正如我所看到的那样,并没有以令人满意的方式回答。
答案 0 :(得分:4)
一般情况下,训练模型时,首先进行前进传球,然后进行反向传球。前向传球根据您的输入数据进行预测,后向传球根据预测的正确程度调整模型。
因此,当您想要应用模型时,只需将新数据作为输入进行正向传递。
在您的特定示例中,使用this code,您可以通过查看它们如何运行测试集来了解它是如何完成的,从第286行开始。
# They instantiate the model with is_training=False
mtest = PTBModel(is_training=False, config=eval_config)
# Then they can do a forward pass
test_perplexity = run_epoch(session, mtest, test_data, tf.no_op())
print("Test Perplexity: %.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})