in utils.py [0:0]
def optimistic_remap_restore(session, save_file, v_prefix):
reader = tf.train.NewCheckpointReader(save_file)
saved_shapes = reader.get_variable_to_shape_map()
vars_list = tf.get_collection(
tf.GraphKeys.GLOBAL_VARIABLES,
scope='context_{}'.format(v_prefix))
var_names = sorted([(var.name.split(':')[0], var) for var in vars_list if (
(var.name.split(':')[0]).replace('context_{}'.format(v_prefix), 'context_0') in saved_shapes)])
restore_vars = []
v_map = {}
with tf.variable_scope('', reuse=True):
for saved_var_name, curr_var in var_names:
var_shape = curr_var.get_shape().as_list()
saved_var_name = saved_var_name.replace(
'context_{}'.format(v_prefix), 'context_0')
if var_shape == saved_shapes[saved_var_name]:
v_map[saved_var_name] = curr_var
else:
print(saved_var_name)
print(var_shape, saved_shapes[saved_var_name])
saver = tf.train.Saver(v_map)
saver.restore(session, save_file)