当我使用tf.Estimator和tf.Session用于同一模型,相同的损耗计算和相同的学习率时,损耗是不同的

我需要在张量流中使用分布式策略训练模型。我用tf.Estimator实现了tf.distribute.experimental.MultiWorkerMirroredStrategy()训练脚本,但是当训练模型sess.run(train_op)sess=tf.Session)时,损失并不相同。

使用tf.Estimator时的损失摘要:

loss = 0.6931446,step = 0
loss = 0.69269186,step = 10000 (131.666 sec)
loss = 0.692308,step = 20000 (131.022 sec)
..
loss = 0.6902984,step = 70000 (133.117 sec)
loss = 0.6897839,step = 80000 (133.148 sec)

使用sess.run()时的损失摘要:

loss:0.512632610154152 step:10000 learning_rate:0.024910704185003737 progress:0.0035861773090868827
loss:0.43613347370028493 step:20000 learning_rate:0.024821501411608406 
progress:0.0071686180076946495
..
loss:0.3895742467820644 step:70000 learning_rate:0.024375198081873287 progress:0.025092446511112955
loss:0.38712772973775866 step:80000 learning_rate:0.024285964294610978 progress:0.02867613274654709

有人可以帮我清理一下吗?关于为什么在使用估计器进行训练时损失没有收敛的问题,当我在两个训练API上使用相同的模型,相同的损失计算和相同的学习率时?我需要将代码迁移到tf.Estimator,以便在多个节点/多个工作程序上运行它。

sonyjkjkjk 回答:当我使用tf.Estimator和tf.Session用于同一模型,相同的损耗计算和相同的学习率时,损耗是不同的

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2994596.html

大家都在问