in utils.py [0:0]
def optimistic_restore(session, save_file, v_prefix=None):
reader = tf.train.NewCheckpointReader(save_file)
saved_shapes = reader.get_variable_to_shape_map()
var_names = sorted([(var.name, var.name.split(':')[0]) for var in tf.get_collection(
tf.GraphKeys.GLOBAL_VARIABLES) if var.name.split(':')[0] in saved_shapes])
restore_vars = []
with tf.variable_scope('', reuse=True):
for var_name, saved_var_name in var_names:
try:
curr_var = tf.get_variable(saved_var_name)
except Exception as e:
print(e)
continue
var_shape = curr_var.get_shape().as_list()
if var_shape == saved_shapes[saved_var_name]:
restore_vars.append(curr_var)
else:
print(var_name)
print(var_shape, saved_shapes[saved_var_name])
saver = tf.train.Saver(restore_vars)
saver.restore(session, save_file)