问题描述
使用TPU,我尝试将experimental_steps_per_execution传递给model.compile(...),但确实看到了很大的提速,但是对于精确的学习进度表,我注意到训练时精度下降了2-3%。完成。总之,我唯一更改的就是该参数。
我尚未找到有关此参数的任何详细文档。尽管似乎可以加快训练速度,但我不清楚“算法”的区别,尤其是。有关如何计算梯度和完成梯度下降步骤的问题。
有人对此有更多了解吗?我是否需要调整其他因素,例如学习速度或batch_size?
解决方法
experimental_steps_per_execution
控制在运行回调之前在设备上处理的批次数量。如果您的学习率调度程序基于回调,则学习率可能没有更新。您可以尝试将 experimental_steps_per_execution
设置为学习率调度程序中使用的公倍数吗?
例如,如果学习率每 100 步更新一次,则设置 experimental_steps_per_execution=100
。