1

我想在使用时加载两个检查点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 中输入一个检查点文件。我想设置两个检查点。我认为可以有两种可能的解决方案:

  • 修改下面的assign_from_checkpoint_fn函数,tf.contrib.framework.assign_from_checkpoint_fn使 model_path 可以是检查点文件的列表
  • 合并之前的两个检查点。(我没有找到任何工具)

有人帮助我吗?

4

1 回答 1

1

我找到了一个解决方案:我们可以像这样使用 session 定义我们的 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)
于 2017-10-03T09:04:35.423 回答