如何在 slim.learning.train 中加载 init_fn 中的两个检查点

How to load two checkpoints in init_fn in slim.learning.train

我想在使用 slim.learning.train 时加载两个检查点。例如,

init_fn = assign_from_checkpoint_fn(model_path, variables_to_restore)
slim.learning.train(train_op, log_dir, init_fn=init_fn)

问题是我在model_path中只能输入一个检查点文件。我想放两个检查站。我认为可以有两种可能的解决方案:

有人帮帮我吗?

我找到了一个解决方案:我们可以像这样使用会话定义我们的 init 函数:

flow_init_assign_op, flow_init_feed_dict = slim.assign_from_checkpoint(
            flow_ckpt, flow_var_to_restore)

resnet_init_assign_op, resnet_init_feed_dict = 
slim.assign_from_checkpoint(
            resnet_ckpt, resnet_var_to_restore, ignore_missing_vars=True)

def init_fn(sess):
    sess.run(flow_init_assign_op, flow_init_feed_dict)
    sess.run(resnet_init_assign_op, resnet_init_feed_dict)