tensorflow - Keras 中的 Adam 优化器在使用 FP32 而不是 FP16 时有效,为什么?
问题描述
我注意到,当使用 FP16 在 Keras 中训练顺序模型时,mse
作为损失函数和adam
优化器;损失无法计算,我得到一个nan
值。
使用 FP32 或使用 FP16 更改优化器时没有问题(我尝试了 adamax 和 sgd)。我是否遗漏了什么或者执行有什么问题adam
?
此处提供了代码片段
解决方案
只需尝试将 epsilon 设置为更大的值:
keras.backend.set_epsilon(1e-4)
对于 fp16 计算,默认 epsilon 可能太小。
推荐阅读
- sharepoint - Sharepoint Online - 如果列表中的列值选择为 NO,则弹出消息?
- javascript - Vue 不与页面交互就不会更新数据
- node.js - 从具有特定索引的数组中删除对象(MongoDB、NodeJS、React)
- python - 如何为包括多对多在内的多个模型创建views.py
- php - 我的 WordPress 主题的分页不起作用
- c# - Visual Studio 2019 - C# Windows 窗体设计器 - 无法从工具箱中添加项目
- swift - xcodebuild ACTIVE_COMPILATION_CONDITIONS 不会覆盖目标的 ACTIVE_COMPILATION_CONDITIONS
- node.js - 无法将 expressjs 部署到 heroku
- java - 答案在 java 中的 Math.ceil() 中会有所不同吗?
- php - laravel MethodNotAllowedHttpException 不被支持