首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“倒带”训练--流动训练步骤

“倒带”训练--流动训练步骤
EN

Stack Overflow用户
提问于 2016-10-27 16:23:11
回答 2查看 158关注 0票数 2

在tensorflow和随机梯度下降的训练中,我偶尔遇到一个问题,在那里我加载了一个小批,对我的优化操作造成了极大的破坏,把它推给了Nans。当然,这会在训练过程中产生一个错误,迫使我重新开始。即使我将优化操作包装在try语句中,当出现异常时,损坏也会发生,并且需要重新启动。

有谁有一个好的方法,基本上,将优化返回到一个有效的状态,当它遇到一个错误?我想你可以用检查点来做这件事,但是保存/恢复的文档很不稳定,我不确定.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-27 18:50:48

就像你说的那样,检查站就是这样做的。您的案例的关键步骤如下:

首先,在定义了图形之后创建一个保护程序对象:

代码语言:javascript
复制
saver = tf.train.Saver(max_to_keep=5, keep_checkpoint_every_n_hours=1)

接下来,在训练期间间歇地写出检查点:

代码语言:javascript
复制
for step in range(max_steps):

    ... some training steps here

    # Save the model every 100 iterations
    if step % 100 == 0:
        saver.save(sess, checkpoint_dir, global_step=step)

最后,当您捕获一个错误时,重新加载最后一个好的检查点:

代码语言:javascript
复制
# this next command restores the latest checkpoint or explicitly specify the filename if you want to use some other logic
restore_fn = tf.train.latest_checkpoint(FLAGS.restore_dir)
print('Restoring from %s' % restore_fn)
saver.restore(sess, restore_fn)
票数 2
EN

Stack Overflow用户

发布于 2016-10-28 10:00:48

回答另一个问题:

您使用的是哪个优化器?

大跳转,像你可以得到简单的梯度下降,不应该是不可能的梯度剪裁或优化一个有限的步长(如亚当)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40289739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档