переполнение.

Откуда в обучении берётся nan: численная нестабильность в ML и почему всё считают в логарифмах

Модель обучается, loss падает, метрики растут. На какой‑то эпохе loss внезапно становится nan и больше не восстанавливается, как бы вы ни понижали learning rate. Или инференс на проде иногда возвращает вероятность ровно 1.0 для класса, которого в обучающей выборке почти не было, а в логах при этом тихо мелькает RuntimeWarning: overflow encountered in exp. Код не менялся, данные те же, гиперпараметры те же. Просто в какой‑то момент промежуточное число вышло за границу того, что тип float умеет хранить, и дальше вся арифметика поехала.

продолжить чтение