Min*_*hoi 3 python neural-network tensorflow
我正在用 tensorflow 编写神经网络代码。我让它在每 1000 个 epoch 中保存变量。所以,我希望为不同的文件保存第 1001 个纪元、第 2001 个纪元、第 3001 个纪元……的变量。下面的代码是我做的保存功能。
def save(self, epoch):
model_name = "MODEL_save"
checkpoint_dir = os.path.join(model_name)
if not os.path.exists(checkpoint_dir):
os.makedirs(checkpoint_dir)
self.saver.save(self.sess, checkpoint_dir + '/model', global_step=epoch)
self.saver.save(self.sess, checkpoint_dir + '/model')
print("path for saved %s" % checkpoint_dir)
Run Code Online (Sandbox Code Playgroud)
一旦调用该函数,我将这段代码保存两次。因为我想通过使用 'global_step=epoch' 为每 1000 个时期保存变量的历史记录。并且想在没有指定纪元的情况下将最新的变量保存在文件中。每当满足时代条件时,我都会调用此函数,如下所示。
for epoch in xrange(self.m_total_epoch):
.... CODE FOR NEURAL NETWORK ....
if epoch%1000 == 1 and epoch != 1:
self.save(epoch)
Run Code Online (Sandbox Code Playgroud)
假设当前纪元是29326,我希望目录中所有保存的文件来自1001, 2001, 3001 ... 29001。但是,只有部分文件来自26001, 27001, 28001, 29001。我检查过它发生在其他计算机上. 这与我的预期不同。为什么会发生?
tf.train.Savermax_to_keep在其构造函数中有一个参数,只保存最新的模型。max_to_keep有点令人惊讶的是,这个参数的默认值为 5。因此,默认情况下,您将只有最新的 5 个模型。
要保留所有模型,请将此变量设置为None:
saver = tf.train.Saver(max_to_keep=None)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3055 次 |
| 最近记录: |