testing - Tensorflow LSTM 模型测试

标签 testing machine-learning tensorflow test-data lstm

我是 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/

相关文章:

python - 是否可以将 NumPy 函数映射到 tf.data.dataset?

testing - 在测试包中访问包的内部符号

python - 单元测试如何更快地更改代码?

postgresql - 如何准备使用 PostgreSQL 内存替换的集成测试?

python - 具有多个元素的数组的真值是不明确的。使用 a.any() 或 a.all() - Numpy 库

tensorflow - 为什么同一个数据集使用tensorflow2.0训练准确率和验证准确率不一样?

tensorflow - 在 TensorFlowdynamic_rnn 中使用sequence_length参数时如何处理填充

javascript - 我如何使用具有异步/等待功能的守夜人?

matlab - 使用 matlab 中交叉验证的 Knn 分类器模型预测新数据集(测试数据)的标签

r - 在train方法中tuneGrid和trControl之间有什么关系?