首页 > 解决方案 > Keras 中的 Adam 优化器在使用 FP32 而不是 FP16 时有效,为什么?

问题描述

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

使用 FP32 或使用 FP16 更改优化器时没有问题(我尝试了 adamax 和 sgd)。我是否遗漏了什么或者执行有什么问题adam

此处提供了代码片段

标签: tensorflowkeras

解决方案


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

keras.backend.set_epsilon(1e-4)

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


推荐阅读