所以我正在使用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)
这是怎么回事?
答案 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)