使用FP32而不是FP16时,Keras中的Adam优化器可以工作,为什么?

时间:2018-12-25 13:25:40

标签: tensorflow keras

我注意到,当使用FP16在Keras中训练顺序模型时,mse作为损失函数,adam作为优化器;损失无法计算,我得到一个nan值。

使用FP32或使用FP16更改优化器时没有问题(我同时尝试了adamax和sgd)。我在使用adam的过程中是否缺少某些东西?

有一个代码段here

1 个答案:

答案 0 :(得分:1)

只需尝试将epsilon设置为更大的值:

keras.backend.set_epsilon(1e-4)

对于eps16计算,默认epsilon可能太小。