【问题标题】:Tensorflow: weights seem random after restoring modelTensorflow:恢复模型后权重似乎是随机的
【发布时间】:2018-05-08 03:41:10
【问题描述】:

我在正确保存然后恢复 tensorflow 模型时遇到了困难。具体来说,我有一个脚本(脚本 #1),它使用一些数据训练模型,然后在相同的数据上对其进行测试。 (我知道你在现实生活中永远不会这样做,但就我的问题而言,没关系)。脚本 #2 应该加载保存的模型,然后在训练模型的相同数据上进行预测。问题是我在脚本 #1 和脚本 #2 中执行推理时得到不同的预测。

在脚本 #1 中:

sess, softmax_probabilities = train_model(data, labels, full_model_filename) # train model
p = [x[1] for x in softmax_probabilities.eval({data_placeholder: data, label_placeholder: labels, dropout_keep_proportion_placeholder: 1.0}, session=sess)] # test model on same data

在这里,变量“p”中的值是有意义的,一切都很好。

train_model 里面是保存模型的代码:

saver = tf.train.Saver()
saver.save(sess, model_filename)

在脚本 #2 中,我有以下内容:

loaded_graph = tf.Graph()
with tf.Session(graph=loaded_graph) as sess:
    sess.run(tf.global_variables_initializer())
    new_saver = tf.train.import_meta_graph(args.model_meta_filename)
    new_saver.restore(sess, tf.train.latest_checkpoint('./'))

    softmax_probabilities = loaded_graph.get_tensor_by_name('softmax_probabilities:0')
    data_placeholder = loaded_graph.get_tensor_by_name('data_placeholder:0')
    dropout_keep_proportion_placeholder = loaded_graph.get_tensor_by_name('dropout_keep_proportion_placeholder:0')

    p = [x[1] for x in softmax_probabilities.eval({data_placeholder: data, dropout_keep_proportion_placeholder: 1.0})]

    print(p)

这一次,变量“p”中的值几乎都非常接近 0.5。因此,就好像加载的模型具有随机权重。在加载模型方面一定有什么我做错了,但我不知道它是什么。任何帮助将不胜感激。 (我在 Stack Overflow 上阅读了其他几个线程,其中 sess.run(tf.global_variables_initializer()) 在加载模型后意外运行,从而覆盖了权重,但我在这里没有这样做。)

再次感谢您的帮助,如果您需要更多信息,请告诉我!

【问题讨论】:

    标签: python tensorflow machine-learning


    【解决方案1】:

    我能够通过更改代码行来解决问题:

    new_saver.restore(sess, tf.train.latest_checkpoint('./'))
    

    与:

    new_saver.restore(sess, args.model_meta_filename.replace(".meta", ""))
    

    澄清一下,args.model_meta_filename 是以 .meta 结尾的已保存文件的名称。

    【讨论】:

    • 他们都给你同样的输出吗?比如:INFO:tensorflow:Restoring parameters from storedsess.ckpt 因为我有同样的问题,但你的解决方案没有解决我的问题,所以我想知道在你的情况下是否是加载错误文件的问题
    猜你喜欢
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    相关资源
    最近更新 更多