резюме тренировки йоло
Резюме старых статей за предыдущий год, возможно новые контактыyolo
небольшой помощи.
генерация данных
Данные, отмеченные веб-страницей via, должны пройти ряд преобразований, чтобы адаптироваться к обучению yolo.Основные шаги включают следующее:
- Создайте метку каждого изображения в соответствии с меткой json: xxx.txt
xxx.txt格式(数值都是除以图片实际宽高保存的):
类名 box矩形中心x坐标 box矩形中心y坐标 box矩形宽 box矩形高
- При этом изображение будет сжато в 1536 и сохранено в папку с изображением
- Наконец, пути изображений, которые будут обучаться с помощью train и val, будут сохранены отдельно для чтения моделью.
Поделиться: Коллекция индикаторов выполнения многопоточности и Jupyter.
йоло окружающая среда строительство
Этот шаг не занимает много времени, согласно официальному сайту пошагово проблем нетофициальный сайт даркнета
Командная строка обучения:
- Войдите в каталог даркнета
- Команда Run:
./darknet detector train ../_question/question.data ../_question/question1280TR.cfg -i 1
-i 1 :
Укажите gpu: 1. [Tucao: почему это сокращение от i]
Проблемы, возникающие во время обучения
Если хочешь не попасть в аварию, не наступай на яму:
- Соответствие набору данных — один из аспектов
- Другим аспектом является настройка cfg.
Интерпретация данных журнала во время обучения:
Region 16 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.000000, .5R: -nan, .75R: -nan, count: 0 |
Region 23 Avg IOU: 0.860543, Class: 0.999887, Obj: 0.962618, No Obj: 0.000232, .5R: 1.000000, .75R: 0.950000, count: 20 |
11670 (текущее время пакета итераций): 0,225856 (общие потери), 0,287980 avg (средние потери), 0,000100 скорость (текущая скорость обучения, определенная в cfg), 11,322880 секунд (текущее время пакета), 1867200 изображений (общее количество участвующих в обучении картинки) |
1. Region 16, Region 23
: (сомнительно)
- Параметры ящиков разного размера, предсказанные на сверточных слоях разного масштаба (16, 23)
- 16-й сверточный слой представляет собой самый большой масштаб предсказания, использующий большую маску, но можно предсказывать более мелкие объекты; все они имеют значение nan или 0, что указывает на то, что в 16-м сверточном слое не могут быть обнаружены никакие объекты.
- 23 Сверточный слой — это наименьший масштаб предсказания, и с меньшей маской можно предсказывать более крупные объекты.
2. Avg IOU: 0.860543
:
- IOU - [область помеченного поля] и [обнаруженная область обнаруженного поля] частота совпадения.
- Конкретный алгоритм выглядит следующим образом:
3. Class: 0.999887
:
Правильная скорость классификации коробок
4. Obj: 0.962618, No Obj: 0.000232
:
- Цель: чем ближе к 1, тем лучше
- No Obj: ожидайте, что значение будет становиться все меньше и меньше, но не равно нулю.
- До сих пор неясно, что это значит
Использованная литература:
журнал проблем
Проблема 1 Модель не может предсказать эффект
Феномен:
При обнаружении эффекта модели ядро умерло
решать:
Неверный путь резервного копирования
потому чтоC
Написано, что на ноутбуке нет конкретного вывода журнала ошибок, что приводит к долгому зависанию этой проблемы и, наконец, находит причину проблемы в jupyter.log.
Проблема 2 Тренировка прерывается через некоторое время
решать:
После долгих исследований я обнаружил, чтоxxx.data
установить вbackup 路径
Если его не создать, это приведет к тому, что резервная копия не сохранится, а затем обучение будет прервано.
Проблема 3 Невозможно тренироваться
Феномен 1:
Не удалось начать обучение. Нет сообщения об ошибке.
решать:
После повышения категории обучения необходимо изменить 4 параметра
- в ххх.данные
classes
нужно изменить - Соответствующее название категории необходимо добавить в xxx.names.
- в слое [yolo] в xxx.cfg
classes
нужно соответствовать категории - Слой над слоем [convolutional] слоя [yolo] в xxx.cfg
filters
Нужно изменить: фильтры=(классы + 5)*количество масок.Ссылка на ссылку
Феномен 2:
Не удалось начать обучение. Сообщение об ошибке:
./darknet: error while loading shared libraries: libcudart.so.10.0: cannot open shared object file: No such file or directory
решать:
Поскольку даркнет cuda path не обнаружен, введите команду временного пути:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64 && sudo ldconfig
Затем выполните обучающую команду
nohup ./darknet detector train ../xxxx/xxxx.data ../xxxxx/xxxx1280TR_1.cfg -i 0 >> 1280TR_0625_train1.txt &
Феномен 3:
Не удалось начать обучение. Сообщение об ошибке:
8Cannot load image "/mobileHDD/xxxx/images/xxx_ (7416).jpg"
STB Reason: unknown image type images
решать:
Возникла проблема с размером сжатия изображения, и изображение необходимо перегенерировать.
Проблема 4 Эффект обнаружения объектов моделью крайне плохой
Феномен:
- потери около 1,9
- порог = 0,5, объект не обнаружен.
- Только когда порог настроен на 0,01, некоторые объекты могут быть обнаружены, и много неправильных ящиков, и ящик очень маленький
Гипотеза 1:
В соответствии с [феноменом 2] предполагается, что это может бытьcfg
серединаanchors
Неправильный размер, используйтеkmeans
Кластерный анализanchors
размер.
Поскольку новый пакет данных содержит много реальных пользовательских данных, а диапазон колебаний размера объекта реальных пользовательских данных очень велик, исходные данныеanchors
Больше не подходит.
Гипотеза 2:
Размер изображения не нормализован.
Как решить не знаю.Возможно что возникли одновременно две проблемы,которые и вызвали это явление.Решилась в 9 часов вечера.Левая часть головы болит...У меня решил эту проблему излишними мозгами...
- Восстановите данные, вместо исходного размера изображения используйте 1280 пикселей.
- Количество якорей увеличено до 21
Пока вроде нормально...
Проблема 5: Какие-то объекты детектируются хорошо, какие-то очень плохо
Феномен:
- loss:
obj
Он ниже и лучше работает в других данных, некоторые из которых вообще не обнаруживаются.
-
[Другой тип обнаружения] Практически никакого эффекта
-
Пропущенное обнаружение определенных объектов очень серьезно
2-4 часаthresh= 0.1
в случае
Очень ненормально!По логике вещей, если потери упадут примерно до 0,5, эффект должен быть лучше, но он явно хуже предыдущего эффекта.
Спекуляция:
Слишком много грязных данных Всего найдено около 200 картинок с грязными данными (картинки перевернуты, отсутствуют метки, неправильные метки, бинаризация), удалите эту часть и потом потренируйтесь, чтобы посмотреть, станет ли она намного лучше.
Предположение отрицательное:
После удаления грязных данных это явление все еще присутствует в результатах обучения, но скорость обнаружения намного выше.
- loss = 0.6
- При прогоне результатов я обнаружил такое явление: определенный тип объектов имеет большую площадь, а скорость обнаружения очень низкая, а объекты с маленькой площадью в принципе нормальные.
Поэтому предполагается, что настройка привязок неразумна, а настройка привязок слишком мала.
Понимание параметров:
mask
- Чтобы достичь цели использования якорей разных размеров в разных слоях [yolo], используйте маску в качестве нижнего индекса [index] якорей. Общий смысл состоит в том, чтобы использовать более крупные привязки на мелководье [yolo] для грубого выбора цели обнаружения, а в глубоком слое использовать якоря меньшего размера для более точного выбора цели обнаружения.
- Оригинальные слова автора: Для каждого слоя мы должны знать размер всех ящиков, но только часть ящиков будет использоваться для
- Маска связана с фильтрами предыдущего слоя [сверточный].Обучение можно проводить только при фильтрах = (классы +5)*[количество масок], иначе будет выдано сообщение об ошибке: количество выходных слоев и входных слоев не соответствуют
darknet: ./src/parser.c:315: parse_yolo: Assertion `l.outputs == params.inputs' failed
Интерпретация параметра:blog.CSDN.net/рН в ОО/Аретти…
Эксклюзивный мастер-код искусственного интеллекта My Didi Cloud: 3388, Введите мастер-код, чтобы получить скидку 10% при покупке продуктов AI, таких как Didi Cloud GPU. нажмитеwww.didiyun.comПерейдите на официальный сайт Didi Cloud, чтобы купить
Эта статья опубликована на многопостовой платформеArtiPubавтоматическая публикация