tensorflow每次(从同一文件中)恢复不同的权重值!

时间:2018-07-01 13:33:48

标签: tensorflow

所以我正在使用GPU的机器上训练模型。当然,我会在培训结束时将其保存:

a = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES)
saver = tf.train.Saver(a)
saver.save(sess, save_path)

现在我只有一个文件,但是每次我从相同文件还原模型时,矩阵中的不同编号以及针对相同示例的不同预测。 我这样恢复模型:

saver = tf.train.import_meta_graph('{}.meta'.format(save_path))
sess.run(tf.global_variables_initializer())
saver.restore(sess, save_path)

这是怎么回事?

1 个答案:

答案 0 :(得分:0)

在导入冻结图后调用sess.run(tf.global_variables_initializer())时,您可能会重新初始化一些不应该使用的变量。

相反,您应该仅初始化 未初始化变量。一种方法是(贷记keras.preprocessing.text.Tokenizer

uninitialized_vars = []
for var in tf.all_variables():
    try:
        sess.run(var)
    except tf.errors.FailedPreconditionError:
        uninitialized_vars.append(var)

init_new_vars_op = tf.initialize_variables(uninitialized_vars)