恢复用于微调的tensorflow模型,带有;“修身、学习、训练”;

恢复用于微调的tensorflow模型,带有;“修身、学习、训练”;,tensorflow,Tensorflow,在tensorflow中,使用slim.learning.train(TF 0.11),我想从检查点恢复一个模型并继续训练。该模型进行了成功的培训,我想对其进行微调。然而,当我这样做时,TF会崩溃并出现错误 Init操作未使模型就绪。 我通过以下方式进行培训: tf.contrib.slim.learning.train( train_op, train_dir, log_every_n_steps=FLAGS.log_every_n_steps, graph=g

在tensorflow中,使用slim.learning.train(TF 0.11),我想从检查点恢复一个模型并继续训练。该模型进行了成功的培训,我想对其进行微调。然而,当我这样做时,TF会崩溃并出现错误
Init操作未使模型就绪。

我通过以下方式进行培训:

tf.contrib.slim.learning.train(
    train_op,
    train_dir,
    log_every_n_steps=FLAGS.log_every_n_steps,
    graph=g,
    global_step=model.global_step,
    number_of_steps=FLAGS.number_of_steps,
    init_fn=model.init_fn,
    saver=model.saver,
    session_config=session_config)
我尝试了3种选择:

#1 跟随

#2 #3
问题解决了。这是因为saver(tf.train.saver)是在模型构建之后直接定义的


相反,按照train op定义定义它,解决了这个问题。

您能分享一下您的代码吗?我仍然有这个问题。谢谢!我在火车开动前定义了一个储蓄器,它就可以工作了。你有关于那个说法的证据吗?
model.init_fn = None
with g.as_default():
    model_path = tf.train.latest_checkpoint(train_dir)
    if model_path:
        def restore_fn(sess):
            tf.logging.info(
                "Restoring SA&T variables from checkpoint file %s",
                restore_fn.model_path)
            model.saver.restore(sess, restore_fn.model_path)
        restore_fn.model_path = model_path
        model.init_fn = restore_fn
    else:
        model.init_fn = None
with g.as_default():
    model_path = tf.train.latest_checkpoint(train_dir)
    if model_path:
        variables_to_restore = tf.contrib.slim.get_variables_to_restore()
        model.init_fn = tensorflow.contrib.framework.assign_from_checkpoint_fn(
            model_path, variables_to_restore)
    else:
        model.init_fn = None