开发者社区> 问答> 正文

对于tensorflow中的LSTM模型,无法在多次运行中重现相同的结果

我在tensorflow中训练LSTM网络。我的模型具有以下配置:

time_steps = 1700
细胞大小:120
输入要素数x = 512。
批量:34
优化器:AdamOptimizer,学习率= 0.01
时期数= 20
我有GTX 1080 Ti。我的tensorflow版本是1.8。

另外,我已经设置了随机种子tf.set_random_seed(mseed),我为每个可训练变量的初始化器设置了随机种子,这样我可以在多次运行后重现相同的结果。

在多次训练模型之后,每次20个时期,我发现我在前几个时期(7,8或9)“在每次运行期间”实现了相同的精确损失,然后损失开始有所不同。我想知道为什么会这样; 如果可能的话,有人可以完全重现任何模型的结果。

另外,在我的情况下,我在每次迭代期间提供整个数据。也就是说,我通过时间(BPTT)进行反向传播而不是截断BPTT。换句话说,我总共有2次迭代,它也等于时期的数量。

下图说明了我的问题。请注意,每一行对应一个纪元。
pLeVJ
请注意,每列对应不同的运行。(我只包括2列/次)来证明我的观点。

最后,使用尺寸100的新功能替换输入要素,我得到更好的结果,如下图所示:
expMB
因此,我不确定这是否是硬件问题?

展开
收起
一码平川MACHEL 2019-01-22 16:43:33 3995 0
1 条回答
写回答
取消 提交回答
  • 据我所知,正如您可能尝试过的那样,tf.set_random_seed(seed=1)或seed等于任何其他整数可能是一种可能的解决方案。

    2019-07-17 23:26:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
使用TensorFlow搭建智能开发系统 自动生成AppUI 立即下载
使用TensorFlow搭建智能开发系统自动生成App UI 立即下载
从零到一:IOS平台TensorFlow入门及应用详解 立即下载