TensorFlow ——save与restore
TensorFlow框架会优先构建全局计算图以及各个节点,再进行计算
- save
保存模型为ckpt文件,save还会保存模型优化器参数。
saver.save(sess, save_path, 'model.ckpt'),global_step=train_steps)
- restore
- 从ckpt恢复模型。
# 恢复所有参数(不限于可训练参数)
saver = tf.train.Saver(max_to_keep=max_to_keep)
ckpt = tf.train.get_checkpoint_state(save_path)
# 从checkpoint里恢复
saver.restore(sess, ckpt.model_checkpoint_path)
# 恢复部分参数
saver = tf.compat.v1.train.Saver(var_list=variables)
ckpt = tf.train.get_checkpoint_state(save_path)
saver.restore(sess, ckpt.model_checkpoint_path)
slim框架查询所有变量
variables = slim.get_variables_to_restore()
注意:
ckpt大于等于model,model有,ckpt一定有
- 查看模型可训练变量
for v in tf.trainable_variables():
print(v.name) # 变量名称
print(v) # 变量tensor
# 获取变量值
sess.run(v)
sess.run(tf.get_default_graph().get_tensor_by_name(name:0))
- 查看ckpt变量
reader = tf.train.NewCheckpointReader(ckpt)
all_variables = reader.get_variable_to_shape_map()
# 获取ckpt里的值
reader.get_tensor(name)