Существует несколько причин потери NaN и почему модели расходятся. Наиболее распространенные те, которые я видел:
- Ваша скорость обучения слишком высокая . Если это так, потеря увеличивается, а затем расходится до бесконечности.
- Вы получаете деление на ноль Ошибка. Если это так, вы можете добавить небольшое число, например
1e-8
, к вашей вероятности на выходе.
- У вас неверные данные . Если это так, убедитесь, что вы не кормите свою модель NaN. т.е. использовать
assert not np.any(np.isnan(x))
для входных данных.
- Ваши ярлыки не находятся в домене вашей целевой функции. Если это так, проверьте диапазон ваших этикеток и убедитесь, что они совпадают.
Если ничего из вышеперечисленного не помогло, попробуйте проверить функцию активации, оптимизатор, функцию потерь, размер и форму сети.
Наконец, хотя менее вероятно , может быть ошибка в используемой платформе. Проверьте репо фреймворка, если есть другие, имеющие такую же проблему.