一、语法解释
使用tf.train.Saver()类来保存模型的参数:
saver = tf.train.Saver() #生成一个保存对象
然后在会话Session()中以当前环境Session为参数,保存训练好的模型参数到本地磁盘:
saver.save(sess,'model/mymodel') #保存到当前路径下的model文件中,并以mymodel为文件名前缀
tf.train.Saver()的构造函数定义:
def __init__(self,
var_list=None,
reshape=False,
sharded=False,
max_to_keep=5,
keep_checkpoint_every_n_hours=10000.0,
name=None,
restore_sequentially=False,
saver_def=None,
builder=None,
defer_build=False,
allow_empty=False,
write_version=saver_pb2.SaverDef.V2,
pad_step_number=False,
save_relative_paths=False,
filename=None):
__init__参数说明:
- var_list:Variable/ 的列表SaveableObject,或者将名称映射到SaveableObjects 的字典。如果None,默认为所有可保存对象的列表。
- reshape:If True,允许从变量具有不同形状的检查点恢复参数。
- sharded:如果True,将每个设备分成一个检查点。
- max_to_keep:要保留的最近检查点的最大数量。默认为5。
- keep_checkpoint_every_n_hours:保持检查站的频率。默认为10,000小时。
- name:字符串。添加操作时用作前缀的可选名称。
- restore_sequentially:A Bool,如果为true,则导致不同变量的恢复在每个设备中顺序发生。这可以在恢复非常大的模型时降低内存使用量。
- saver_def:SaverDef使用可选的proto而不是运行构建器。这仅适用于想要Saver为先前构建的Graph具有a 的对象重新创建对象的专业代码Saver。该saver_def原型应该是返回一个 as_saver_def()的电话Saver说是为创建Graph。
- builder:SaverBuilder如果saver_def未提供,则可以选择使用。默认为BulkSaverBuilder()。
- defer_build:如果True,请将保存和恢复操作添加到 build()呼叫中。在这种情况下,build()应在最终确定图表或使用保护程序之前调用。
- allow_empty:如果False(默认)如果图中没有变量则引发错误。否则,无论如何构建保护程序并使其成为无操作。
- write_version:控制保存检查点时使用的格式。