如何知道seq2seq模型中是否达到了纪元点?

时间:2016-02-01 09:27:45

标签: python tensorflow recurrent-neural-network

我正在训练seq2seq模型,因为seq2seq模型的默认设置大约有一百万个句子的自定义平行语料库。 以下是输出日志,如教程中所述,已超过350k步。我看到斗车困惑突然显着增加,整体列车困难在很长一段时间内始终保持在1.02,同时学习率初始化为0.5但现在显示约0.007,因此学习率也显着下降,同时系统的输出并不令人满意。 如何知道是否达到了纪元点,是否应该停止并重新配置参数调整和优化器改进等设置?

global step 372800 learning rate 0.0071 step-time 1.71 perplexity 1.02
  eval: bucket 0 perplexity 91819.49
  eval: bucket 1 perplexity 21392511.38
  eval: bucket 2 perplexity 16595488.15
  eval: bucket 3 perplexity 7632624.78
global step 373000 learning rate 0.0071 step-time 1.73 perplexity 1.02
  eval: bucket 0 perplexity 140295.51
  eval: bucket 1 perplexity 13456390.43
  eval: bucket 2 perplexity 7234450.24
  eval: bucket 3 perplexity 3700941.57
global step 373200 learning rate 0.0071 step-time 1.69 perplexity 1.02
  eval: bucket 0 perplexity 42996.45
  eval: bucket 1 perplexity 37690535.99
  eval: bucket 2 perplexity 12128765.09
  eval: bucket 3 perplexity 5631090.67
global step 373400 learning rate 0.0071 step-time 1.82 perplexity 1.02
  eval: bucket 0 perplexity 119885.35
  eval: bucket 1 perplexity 11166383.51
  eval: bucket 2 perplexity 27781188.86
  eval: bucket 3 perplexity 3885654.40
global step 373600 learning rate 0.0071 step-time 1.69 perplexity 1.02
  eval: bucket 0 perplexity 215824.91
  eval: bucket 1 perplexity 12709769.99
  eval: bucket 2 perplexity 6865776.55
  eval: bucket 3 perplexity 5932146.75
global step 373800 learning rate 0.0071 step-time 1.78 perplexity 1.02
  eval: bucket 0 perplexity 400927.92
  eval: bucket 1 perplexity 13383517.28
  eval: bucket 2 perplexity 19885776.58
  eval: bucket 3 perplexity 7053727.87
global step 374000 learning rate 0.0071 step-time 1.85 perplexity 1.02
  eval: bucket 0 perplexity 46706.22
  eval: bucket 1 perplexity 35772455.34
  eval: bucket 2 perplexity 8198331.56
  eval: bucket 3 perplexity 7518406.42
global step 374200 learning rate 0.0070 step-time 1.98 perplexity 1.03
  eval: bucket 0 perplexity 73865.49
  eval: bucket 1 perplexity 22784461.66
  eval: bucket 2 perplexity 6340268.76
  eval: bucket 3 perplexity 4086899.28
global step 374400 learning rate 0.0069 step-time 1.89 perplexity 1.02
  eval: bucket 0 perplexity 270132.56
  eval: bucket 1 perplexity 17088126.51
  eval: bucket 2 perplexity 15129051.30
  eval: bucket 3 perplexity 4505976.67
global step 374600 learning rate 0.0069 step-time 1.92 perplexity 1.02
  eval: bucket 0 perplexity 137268.32
  eval: bucket 1 perplexity 21451921.25
  eval: bucket 2 perplexity 13817998.56
  eval: bucket 3 perplexity 4826017.20

这什么时候会停止?

1 个答案:

答案 0 :(得分:1)

看起来你的开发和火车数据之间存在差异:

  

全球步374600学习率0.0069步时1.92困惑1.02

     

eval:bucket 0 atplexity 137268.32

您的训练困惑是1.02 - 该模型基本上是完美的训练收到的数据。但是你的开发困惑是巨大的,模型根本不适用于开发组。它在早期的时代看起来如何?我怀疑有一些不匹配。也许火车和开发人员的标记化是不同的?也许你加载了错误的文件?也许原始翻译模型中的存储桶大小不适合您的开发数据?如果不了解更多细节,很难说。

关于何时停止:原始翻译模型具有无限的训练循环,因为它具有大的数据集和容量,并且可以在数周的训练中继续改进。但是当它不再提高时,它也降低了学习率,所以如果你的学习率非常低(在你的情况下似乎如此),那么你就可以停止这个明确的信号。