【发布时间】: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