Во время обучения модели она отображается как loss = nan после определенного шага

#tensorflow #machine-learning #deep-learning #object-detection

#tensorflow #машинное обучение #глубокое обучение #обнаружение объекта

Вопрос:

Я работаю над обнаружением объектов TensorFlow. Я использую Google Colab. Пока модель обучается, она отображается как loss = nan после определенного шага. Как я могу это исправить?

Модель = ssd_efficientdet_d2

Вывод =

 I1125 09:30:20.814607 139701278168960 model_lib_v2.py:652] Step 1400 per-step time 0.418s loss=1.650 INFO:tensorflow:Step 1500 per-step time 0.601s loss=1.285

I1125 09:31:09.918310 139701278168960 model_lib_v2.py:652] Step 1500 per-step time 0.601s loss=1.285
INFO:tensorflow:Step 1500 per-step time 0.601s loss=1.285

I1125 09:31:09.918310 139701278168960 model_lib_v2.py:652] Step 1500 per-step time 0.601s loss=1.285
INFO:tensorflow:Step 1600 per-step time 0.444s loss=1.344

I1125 09:31:59.594189 139701278168960 model_lib_v2.py:652] Step 1600 per-step time 0.444s loss=1.344
INFO:tensorflow:Step 1700 per-step time 0.511s loss=nan

I1125 09:32:49.015780 139701278168960 model_lib_v2.py:652] Step 1700 per-step time 0.511s loss=nan
INFO:tensorflow:Step 1800 per-step time 0.576s loss=nan

I1125 09:33:39.257319 139701278168960 model_lib_v2.py:652] Step 1800 per-step time 0.576s loss=nan
INFO:tensorflow:Step 1900 per-step time 0.439s loss=nan

I1125 09:34:27.547188 139701278168960 model_lib_v2.py:652] Step 1900 per-step time 0.439s loss=nan
INFO:tensorflow:Step 2000 per-step time 0.445s loss=nan

I1125 09:35:17.008013 139701278168960 model_lib_v2.py:652] Step 2000 per-step time 0.445s loss=nan
INFO:tensorflow:Step 2100 per-step time 0.490s loss=nan

I1125 09:36:08.541600 139701278168960 model_lib_v2.py:652] Step 2100 per-step time 0.490s loss=nan
INFO:tensorflow:Step 2200 per-step time 0.697s loss=nan
 

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

1. Ваши градиенты, вероятно, взрываются (ваши потери растут). Снижение скорости обучения может быть хорошей первой вещью, которую нужно попробовать,

2. @cbk Я сталкиваюсь с той же проблемой. Как вы ее решили?

3. да, я снизил скорость обучения, после чего проблема решена

Ответ №1:

Я видел много вещей, из-за которых модель расходится и которые могут привести к увеличению потерь или снижению точности.

  1. Может быть связано с высокой скоростью обучения, поэтому в первую очередь уменьшите скорость обучения.
  2. Проверьте классификатор DNNClassifier , если вы используете правильный.
  3. Проверьте, являются ли метки правильными и находятся ли они в области функции потерь.
  4. Проверьте также функцию потерь. Иногда причиной является то, что входные данные не соответствуют функции потерь.
  5. Убедитесь, что данные правильно нормализованы. Вероятно, вы хотите, чтобы пиксели находились в диапазоне [-1, 1], а не [0, 255].