我是 LSTM 和 Tensorflow 的新手,我正在尝试使用 LSTM 模型来学习然后对我拥有的一些庞大数据集进行分类。 (我不担心我打算学习的准确性)。 我尝试以与使用 LSTM 的 PTB 单词预测教程类似的方式来实现该模型。 教程中的代码 ( https://tensorflow.googlesource.com/tensorflow/+/master/tensorflow/models/rnn/ptb/ptb_word_lm.py ) 使用以下行使用模型运行 session
cost, state, _ = session.run([m.cost, m.final_state, eval_op],
{m.input_data: x,
m.targets: y,
m.initial_state: state})
我为我的示例修改了它,如下所示(以获取 logits 并使用它):
cost, state, _,output,logits = session.run([m.cost, m.final_state, eval_op, m.output,m.logits],
{m.input_data: x,
m.targets: y,
m.initial_state: state})
如果有人可以提供帮助,我的问题如下:
- 如何将训练时构建的模型用于测试?什么 当教程使用 3 个模型进行每个测试、训练和验证时,究竟发生了什么?
- 测试时的目标如何(如果我不知道它们,请在分类问题中说)。 run_epoch () 中的哪些更改可以以使用训练期间构建的模型的方式完成。
- 还有一个问题:调试tensorflow图很困难(我发现tensorboard visualizer也很难理解)而且我没有找到学习tensorflow的好资源(该网站似乎缺乏结构/文档)还有什么有资源/调试方法吗?
谢谢。
最佳答案
回答我自己的问题以帮助任何最终来到这里的人: 在验证/测试期间,向 runepoch() 指示它是验证/测试阶段(使用 bool 或其他方式)。 不要调用成本操作(因为这是唯一需要目标的操作。)因此,验证/测试阶段的修改代码将如下所示:
state, _,output,logits = session.run([m.final_state, eval_op, m.output,m.logits],
{m.input_data: x,
m.initial_state: state})
稍后使用 logits 计算准确度。
关于testing - Tensorflow LSTM 模型测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36928080/