【问题标题】:How to get predictions MLP tensorflow from a restored model?如何从恢复的模型中获得预测 MLP tensorflow?
【发布时间】:2017-08-16 04:46:15
【问题描述】:

stackoverflowers,我需要 tensorflow 专家的帮助。实际上我已经建立了一个多层感知器,训练它,测试它,一切看起来都很好。然而,当我恢复模型并再次尝试使用它时,它的准确性与训练后的模型不对应,并且预测与真实标签有很大不同。我用于恢复的代码 - 预测如下:(我正在使用 R)

pred <- multiLayerPerceptron(test_data)
init <- tf$global_variables_initializer()
with(tf$Session() %as% sess, {
  sess$run(init)
  model_saver$restore(sess, "log_files/model_MLP1")
  test_pred_1 <- sess$run(pred, feed_dict= dict(x =  test_data))

})

代码一切正常吗?仅供参考,我希望通过这部分代码来获得我的模型对 test_data 的预测。

【问题讨论】:

  • 澄清一下,您是在模型上使用相同的数据,还是使用不同的“测试”数据集?
  • 我正在使用另一组作为“training_data”,但当然是相同类型的数据。问题是,当我在训练后的同一会话下评估时,该测试集上模型的准确性也很好,但是一旦我关闭所有内容并尝试恢复模型,我感觉它的行为就像一个随机生成的 NN 根本没有经过训练。因此,我认为问题在于恢复语法。
  • 所以它在你的训练集上效果很好,但是一旦它进入“现实世界”,它就不能很好地工作了。听起来像是过拟合的情况。
  • 你没有明白我的意思。在同一会话下,当我训练模型并完成训练并在关闭会话之前对测试数据进行测试时,训练准确度和测试准确度都很好。但是一旦我想恢复模型,它就不再适用于训练数据和测试数据。它就像我之前所说的'就像一个随机生成权重的神经网络'

标签: r tensorflow


【解决方案1】:

您的代码没有显示model_saver 的初始化位置,但它应该在您创建计算图之后创建。如果不是,它不知道要恢复/保存哪些变量。所以在pred &lt;- multiLayerPerceptron(test_data) 之后创建你的model_saver

请注意,如果您在训练期间犯了同样的错误,您的检查点将为空,您需要先重新训练您的模型。

【讨论】:

    猜你喜欢
    • 2019-06-28
    • 2017-10-22
    • 1970-01-01
    • 2019-04-28
    • 2017-08-21
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    相关资源
    最近更新 更多