Ошибка утверждения: для этого оптимизатора не было записано никаких проверок inf в AutomaticMixedPrecision Pytorch

#python #deep-learning #pytorch

#python #глубокое обучение #pytorch

Вопрос:

Я использую функцию AutomaticMixedPrecision в PyTorch для обучения сети с меньшей площадью и точностью.
В определенный момент некоторые вложения из сети имеют NAN в своих тензорах, поэтому я хотел бы заменить их на 0, чтобы выполнить онлайн-анализ жестких отрицательных выборок.

Однако после замены NAN в тензоре следующим образом:

 tensor[torch.isnan(tensor)] = 0
 

Я получаю следующую ошибку при выполнении следующего шага масштабирования (scaler.step(optimizer):

     assert len(optimizer_state["found_inf_per_device"]) > 0, "No inf checks were recorded for this optimizer."
AssertionError: No inf checks were recorded for this optimizer.
 

Каков правильный способ обнуления NAN при избавлении от этой ошибки?

Комментарии:

1. У меня такая же проблема, вы нашли какое-либо решение @Jjang?

Ответ №1:

не могли бы вы показать нам свой полный код. Как правило, рекомендуется просто пропустить шаг (пакет), если у него есть NaN.

Также взгляните на torch.nan_to_num .