带dropout op的网络预测多次结果不一致
Created by: gavin1332
实验条件:
- 训练语言模型(单层GRU,GRU输出接dropout),测试ppl
- 使用fluid.io.load_inference_model加载模型
- 分别从模型不同的epoch顺序预测
- 查看预测网络pb配置中启用了预测模式
结论:
- 带dropout op的模型从不同epoch预测,如果启动的epoch一致,则对应epoch的结果一致(见表1最后两列);如果启动的epoch不一致,则对应epoch的ppl结果不一致(见表1中间三列)
- 不带dropout op的模型无论如何预测,对应epoch的结果均一致。
表1 带dropout op的实验结果
predict from | epoch 0 | epoch 2 | epoch 3 | epoch 3 (again) |
---|---|---|---|---|
epoch 0 | 442.66687 | |||
epoch 1 | 329.35619 | |||
epoch 2 | 279.49527 | 279.49610 | ||
epoch 3 | 245.50802 | 245.50782 | 245.50917 | 245.50917 |
epoch 4 | 221.23342 | 221.23379 | 221.23351 | 221.23351 |
表2 不带dropout op的实验结果
predict from | epoch 0 | epoch 2 | epoch 3 |
---|---|---|---|
epoch 0 | 212.51747 | ||
epoch 1 | 163.43292 | ||
epoch 2 | 143.05275 | 143.05275 | |
epoch 3 | 135.12422 | 135.12422 | 135.12422 |
epoch 4 | 132.23307 | 132.23307 | 132.23307 |