tensorflow 1.0之tf.train.Saver 文档翻译
2017-02-22 12:20
627 查看
tf.train.Saver
类tf.train.Saver
请参阅指南:变量>保存和恢复变量
保存和恢复变量。
有关变量,保存和恢复的概述,请参阅变量。
Saver类添加了ops来保存和恢复变量到检查点和从检查点恢复变量。它还提供了运行这些操作的便利方法。
检查点是以变量名称与张量值映射的专有格式的二进制文件。检查检查点内容的最好方法是使用Saver加载它。
Savers可以使用提供的计数器自动为检查点文件名编号。这允许您在训练模型时在不同的步骤保持多个检查点。例如,您可以使用训练步骤编号为检查点文件名编号。为了避免填满磁盘,存储器自动管理检查点文件。例如,它们可以只保留N个最近的文件,或者每N个训练时间保留一个检查点。
通过将值传递给save()的可选global_step参数,可以对检查点文件名进行编号:
saver.save(sess,'my-model',global_step = 0)==> filename:'my-model-0'
... ...
saver.save(sess,'my-model',global_step = 1000)==> filename:'my-model-1000'
此外,Saver()构造函数的可选参数允许您控制磁盘上检查点文件的扩散:
max_to_keep表示要保留的最近检查点文件的最大数目。创建新文件时,将删除较旧的文件。如果为None或0,则保留所有检查点文件。默认值为5(即,保留5个最近的检查点文件。)
keep_checkpoint_every_n_hours:除了保留最新的max_to_keep检查点文件,您可能需要为每N个小时的训练保留一个检查点文件。如果您想稍后分析模型在长时间训练期间的进展情况,这将非常有用。例如,传递keep_checkpoint_every_n_hours = 2可确保每2个小时的训练保留一个检查点文件。默认值10,000小时有效地禁用此功能。
注意,你仍然需要调用save()方法来保存模型。将这些参数传递给构造函数不会自动为您保存变量。
定期保存的培训计划如下:
... ...
#创建一个保护程序。
saver = tf.train.Saver(... variables ...)
#启动图表和火车,每1000步保存模型。
sess = tf.Session()
for xrange(1000000):
sess.run(.. training_op ..)
如果步骤%1000 == 0:
#将步骤编号附加到检查点名称:
saver.save(sess,'my-model',global_step = step)
除了检查点文件,存储器在磁盘上保存最近的检查点列表的协议缓冲区。这用于管理编号的检查点文件和通过latest_checkpoint(),这使得很容易发现到最近的检查点的路径。该协议缓冲区存储在检查点文件旁边的名为“checkpoint”的文件中。
如果创建多个存储器,则可以在调用save()中为协议缓冲区文件指定不同的文件名。
属性
last_checkpoints
尚未删除的检查点文件名列表。
您可以将任何返回的值传递给restore()。
返回:
检查点文件名列表,从最旧到最新。
方法
__init __(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 = tf。 SaverDef.V2,pad_step_number
= False)
创建节省。
构造函数添加ops来保存和恢复变量。
var_list指定将要保存和恢复的变量。它可以作为dict或列表传递:
名称对变量的dict:键是将用于保存或恢复检查点文件中的变量的名称。
变量列表:变量将以检查点文件中的操作名称键入。
例如:
v1 = tf.Variable(...,name ='v1')
v2 = tf.Variable(...,name ='v2')
#将变量作为dict传递:
saver = tf.train.Saver({'v1':v1,'v2':v2})
#或将它们作为列表传递。
saver = tf.train.Saver([v1,v2])
#传递列表相当于传递带有变量op名称的dict
#为键:
saver = tf.train.Saver({v.op.name:v for v in [v1,v2]})
可选的reshape参数(如果为True)允许从保存文件中恢复变量,其中变量具有不同的形状,但元素和类型的数量相同。如果您已重新塑造变量并希望从较旧的检查点重新加载它,这将非常有用。
可选的分片参数(如果为True)指示保存程序为每个设备分割检查点。
类tf.train.Saver
请参阅指南:变量>保存和恢复变量
保存和恢复变量。
有关变量,保存和恢复的概述,请参阅变量。
Saver类添加了ops来保存和恢复变量到检查点和从检查点恢复变量。它还提供了运行这些操作的便利方法。
检查点是以变量名称与张量值映射的专有格式的二进制文件。检查检查点内容的最好方法是使用Saver加载它。
Savers可以使用提供的计数器自动为检查点文件名编号。这允许您在训练模型时在不同的步骤保持多个检查点。例如,您可以使用训练步骤编号为检查点文件名编号。为了避免填满磁盘,存储器自动管理检查点文件。例如,它们可以只保留N个最近的文件,或者每N个训练时间保留一个检查点。
通过将值传递给save()的可选global_step参数,可以对检查点文件名进行编号:
saver.save(sess,'my-model',global_step = 0)==> filename:'my-model-0'
... ...
saver.save(sess,'my-model',global_step = 1000)==> filename:'my-model-1000'
此外,Saver()构造函数的可选参数允许您控制磁盘上检查点文件的扩散:
max_to_keep表示要保留的最近检查点文件的最大数目。创建新文件时,将删除较旧的文件。如果为None或0,则保留所有检查点文件。默认值为5(即,保留5个最近的检查点文件。)
keep_checkpoint_every_n_hours:除了保留最新的max_to_keep检查点文件,您可能需要为每N个小时的训练保留一个检查点文件。如果您想稍后分析模型在长时间训练期间的进展情况,这将非常有用。例如,传递keep_checkpoint_every_n_hours = 2可确保每2个小时的训练保留一个检查点文件。默认值10,000小时有效地禁用此功能。
注意,你仍然需要调用save()方法来保存模型。将这些参数传递给构造函数不会自动为您保存变量。
定期保存的培训计划如下:
... ...
#创建一个保护程序。
saver = tf.train.Saver(... variables ...)
#启动图表和火车,每1000步保存模型。
sess = tf.Session()
for xrange(1000000):
sess.run(.. training_op ..)
如果步骤%1000 == 0:
#将步骤编号附加到检查点名称:
saver.save(sess,'my-model',global_step = step)
除了检查点文件,存储器在磁盘上保存最近的检查点列表的协议缓冲区。这用于管理编号的检查点文件和通过latest_checkpoint(),这使得很容易发现到最近的检查点的路径。该协议缓冲区存储在检查点文件旁边的名为“checkpoint”的文件中。
如果创建多个存储器,则可以在调用save()中为协议缓冲区文件指定不同的文件名。
属性
last_checkpoints
尚未删除的检查点文件名列表。
您可以将任何返回的值传递给restore()。
返回:
检查点文件名列表,从最旧到最新。
方法
__init __(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 = tf。 SaverDef.V2,pad_step_number
= False)
创建节省。
构造函数添加ops来保存和恢复变量。
var_list指定将要保存和恢复的变量。它可以作为dict或列表传递:
名称对变量的dict:键是将用于保存或恢复检查点文件中的变量的名称。
变量列表:变量将以检查点文件中的操作名称键入。
例如:
v1 = tf.Variable(...,name ='v1')
v2 = tf.Variable(...,name ='v2')
#将变量作为dict传递:
saver = tf.train.Saver({'v1':v1,'v2':v2})
#或将它们作为列表传递。
saver = tf.train.Saver([v1,v2])
#传递列表相当于传递带有变量op名称的dict
#为键:
saver = tf.train.Saver({v.op.name:v for v in [v1,v2]})
可选的reshape参数(如果为True)允许从保存文件中恢复变量,其中变量具有不同的形状,但元素和类型的数量相同。如果您已重新塑造变量并希望从较旧的检查点重新加载它,这将非常有用。
可选的分片参数(如果为True)指示保存程序为每个设备分割检查点。
相关文章推荐
- tensorflow学习day2简单监督学习模型及用tf.train.Saver实现检查点恢复
- tensorflow模型持久化之tf.train.saver
- tensorflow中关于模型存储和恢复(tf.train.Saver())的问题
- TensorFlow入门使用 tf.train.Saver()保存模型
- 【TensorFlow】模型持久化tf.train.Saver—下(九)
- tensorflow学习——tf.train.Supervisor()与tf.train.saver()
- 在Windows上安装TensorFlow官方文档——翻译
- tf.train.Saver
- tf.train.Saver
- TensorFlow 官方文档中文版解读之2——tf.sparse_to_dense的用法
- tf.train.Saver函数的用法之保存全部变量和模型
- TensorFlow入门基础知识(六)tf.train.ExponentialMovingAverage()的用法
- TF:利用TF的train.Saver将训练好的variables(W、b)保存到指定的index、meda文件—Jason niu
- tensorflow: tf.train.exponential_decay函数
- tf.train.Saver函数的用法之保存全部变量和模型
- (翻译)Django 1.0 中文文档-----指导 第一部分
- (翻译)Django 1.0 中文文档-----指导 第二部分
- TensorFlow 官方文档中文版解读之1 ——tf.concat的用法的用法
- TF:利用TF的train.Saver载入曾经训练好的variables(W、b)以供预测新的数据—Jason niu
- tensorflow 1.0 学习:模型的保存与恢复(Saver)