我正在使用以下代码,还原的权重是随机初始化,而不是存储在ckpt文件中的实际权重。请帮助我理解我哪里出了问题。
best_val_model = 'val_E1_A86.ckpt'
model_dir = './models/'
with tf.Session(config = config) as sess:
sess.run(tf.global_variables_initializer())
print('Testing the model on 10000 Images!')
ckpt_file = os.path.join(model_dir, best_val_model)
saver = tf.train.import_meta_graph(ckpt_file)
saver.restore(sess, ckpt_file)
weights = {}
for v in tf.trainable_variables():
weights[v.name] = v.eval()
在训练过程中使用tf.train.Saver(sess,filename)
保存的实际模型权重。恢复时,将恢复随机权重。
答案 0 :(得分:0)
我只需要删除两行sess.run(tf.golbal_variables_initializer())
,saver = tf.train.import_meta_graph(ckpt_file)
,就可以了。使用的最终代码:
saver = tf.train.Saver(tf.trainable_variables())
with tf.Session(config = config) as sess:
sess.run(tf.local_variables_initializer())
print('Testing the model on 10000 Images!')
ckpt_file = os.path.join(model_dir, best_val_model)
saver.restore(sess, ckpt_file)