Comments 36
UFO just landed and posted this here
Спасибо за статью.
Быстро считает. У меня получалось по 10-20ms на кадр. В то время, когда Faster-RCNN тратил по 100-150.А что за видеокарта?
0
1080, так что да, это не очень репредентативно для простых устройств
+1
Понятно, а более быстрые сети в природе существуют? Насколько реально получить такие скорости на видеокарте среднего уровня типа 950?
0
Упомянуый в статье YOLO можно разогнать вплоть до 100fps.
+1
Я думаю, что на 950 максимум раза в 2 упадёт. А так должна работать.
+1
Ну работать это само собой, просто интересно, насколько подобные сети сегодня шагнули вперед по скорости.
Кстати, какая зависимость размера кадра и скорости? Уменьшения кадра и падения качества распознавания? Точных цифр не надо, достаточно одним словом охарактеризовать.
Кстати, какая зависимость размера кадра и скорости? Уменьшения кадра и падения качества распознавания? Точных цифр не надо, достаточно одним словом охарактеризовать.
0
Ну работать это само собой, просто интересно, насколько подобные сети сегодня шагнули вперед по скорости.
Вообще ни на сколько не шагнули :-)
Есть некоторые методы сжатия сетей, но драматичного прироста производительности они не дают.
+1
В DetectNet вычислений на верхнем уровне практически нет, как я понимаю. А для свёрточной сети объём вычислений будет прямо пропорционален площади. Ускорения тут скорее от железа будут зависить. Вроде NVIDIA сделало нативную поддержку ядер 3*3. Но каких-то тестов не от NVIDIA не видел.
+1
Не могу не заметить, что в новый Titan X и Теслы подвезли INT8 инструкции оптимизированные для машинного обучения. Также хочу услышать комментарий автора, относительно них.
+2
На новых не работал. Видел тесты NVIDIA, что они просто разрывают всех по производительности. Но реально не читал про опыт использования. И сам не тестировал.
+1
Тесл еще в продаже нет, только Титан(в P100 поддержки INT8 нет). Еще нагуглил, что Intel Xeon Phi уже поддерживают часть инструкций, запихивая по 8 штук за раз в AVX-512. Видимо будет отчаянная грызня до последней капли крови за нейросети.
0
А ATI какие нибудь интересные решения для своих железок не предлагает? И у кого из этих производителей больше взаимопонимания с юзерами и разработчиками под GPU?
0
У NVIDIA. Считайте что они захватили рынок. Нет, какая-то поддержка ATI есть. Но обычно кривая и бажная. В Theano вроде есть, в TensorFlow. Но ATI реагирует на желания пользователей лишь после того как на них прореагирует NVIDIA. Или даже позже.
А так, даже Intel прикрутил для своей IntelPHI какой-то форк Caffe. Но вот стоит ли этим пользоваться? Не думаю.
А так, даже Intel прикрутил для своей IntelPHI какой-то форк Caffe. Но вот стоит ли этим пользоваться? Не думаю.
+3
В Torch есть поддержка OpenCL, но оно работает заментно медленее чем CUDA/cuDNN.
0
Быстро считает. У меня получалось по 10-20ms на кадр. В то время, когда Faster-RCNN тратил по 100-150.
Чет мне кажется, что Faster тоже полетит, если у него в качестве feature extractor будет использоваться GoogLeNet вместо VGG-16...
+2
Кстати, тут есть любопытный вопрос. Если YOLO заапдейтить верхушку вот таким образом (назвается SSD). То у него качество распознавания раза в 1.2 вырастает. Но этот апдейт, по сути, просто напросто Residual Connection.
Возникает логичный вопрос: где сетки для детектирования на базе полноценного ResNet??? Они должны хорошо работать. Почему никто на базе ResNet не пересобрал Faster-RCNN? Или всё это уже давно сделано в недрах крупных компаний, просто не публикуются результаты?
Как я понял YOLO на VGG16 всё же даёт ~50 fps. По крайней мере вот эти ребята недавно эксперементировали вроде. А. Вы чуть выше это тоже упомянули. Но 100fps я не видел сам:)
так что не думаю, что Faster прямо таки в 10 раз ускориться. Но раза в 2 может.
Возникает логичный вопрос: где сетки для детектирования на базе полноценного ResNet??? Они должны хорошо работать. Почему никто на базе ResNet не пересобрал Faster-RCNN? Или всё это уже давно сделано в недрах крупных компаний, просто не публикуются результаты?
Чет мне кажется, что Faster тоже полетит, если у него в качестве feature extractor будет использоваться GoogLeNet вместо VGG-16...
Как я понял YOLO на VGG16 всё же даёт ~50 fps. По крайней мере вот эти ребята недавно эксперементировали вроде. А. Вы чуть выше это тоже упомянули. Но 100fps я не видел сам:)
так что не думаю, что Faster прямо таки в 10 раз ускориться. Но раза в 2 может.
+1
Топовый результат в object detection на ImageNet как раз продемонстрирован ResNet, воткнутым в Faster-RCNN
+1
А там опубликована статья? Ссылочкой не поделитесь? Я переодически табличку по VOC2012 отслеживаю — http://host.robots.ox.ac.uk:8080/leaderboard/displaylb.php?cls=mean&challengeid=11&compid=6&submid=8822#KEY_RRR-ResNet152-COCO-MultiScale
Но там по тем сеткам, где архитектура открыта она какая-то мутная. То марковские модели впилят, то какие-то карты фич полу-вручную разгребают.
Но там по тем сеткам, где архитектура открыта она какая-то мутная. То марковские модели впилят, то какие-то карты фич полу-вручную разгребают.
+1
А чего там публиковать то? Ну воткнули и воткнули, в faster'е же feature extraction впиливается достаточно прямолинейно. А вообще вот, например, статейка про то, как чего-нибудь сильно кастомное приделать к faster'у: https://arxiv.org/pdf/1608.08021.pdf
+1
В изначальной статье про ResNets это обсуждается в Appendix: https://arxiv.org/abs/1512.03385
0
Как я понял YOLO на VGG16 всё же даёт ~50 fps. По крайней мере вот эти ребята недавно эксперементировали вроде. А. Вы чуть выше это тоже упомянули. Но 100fps я не видел сам:)
С VGG-16 у меня получалось ~90мс на кадр (на 980Ti), а вот при использовании упрощенных фич 100fps он действительно выдает, но детектирует совсем плохо.
+1
Спасибо за обзоры, с помощью чего приводили базу к стандарту описания KITTY?
0
А зачем вы удалили приложение по распознаванию номеров из App Store? Где его можно скачать?
0
То что там GoogLeNet используется несет какой то смысл или можно любую воткнуть?
0
Спасибо за статью. Я новичок в этой области, и в попытках повторить все шаги автора, наступил на некоторые грабли:
В итоге застрял на самом обучении. По разному изменял параметры сети, график остаётся на нуле. На моей GTX 1060 6Гб памяти, поэтому использовал Batch size 5 и Batch Accumulation 2. В параметрах ClusterDetections: 720, 480, 16, 0.05, 1, 0.02, 10, 1
В какую сторону нужно копать, чтобы заставить его обучаться?
- Долго разбирался с форматом KITTY. Было не очевидно, что начало координат: левый верхний угол с нулевого индекса. Готовую базу можно посмотреть и проверить через KITTI Object development kit
- Для новых Pascal видеокарт необходима cuda 8, на 7.5 будет ошибка.
В итоге застрял на самом обучении. По разному изменял параметры сети, график остаётся на нуле. На моей GTX 1060 6Гб памяти, поэтому использовал Batch size 5 и Batch Accumulation 2. В параметрах ClusterDetections: 720, 480, 16, 0.05, 1, 0.02, 10, 1
При этом график обучения выглядит вот так
В какую сторону нужно копать, чтобы заставить его обучаться?
+1
Видите, у вас падают loss. Тобишь обучение всё-таки идёт.
Нужно менять эти 4 параметра:
gridbox_cvg_threshold,gridbox_rect_threshold,gridbox_rect_eps,min_height,num_classes
А как — не знаю. Попробуйте порандомить или подумать какие параметры больше подходят под вашу задачу.
Нужно менять эти 4 параметра:
gridbox_cvg_threshold,gridbox_rect_threshold,gridbox_rect_eps,min_height,num_classes
А как — не знаю. Попробуйте порандомить или подумать какие параметры больше подходят под вашу задачу.
+1
Разобрался и заставил ползти график вверх. Похоже, дело было в грязной среде. Решилось всё тем, что я взял nvidia-docker, на нём запустил Digits 5.1, в котором обучение пошло. Стандартный docker образ от nvidia, содержащий digits, не подходит для новых видеокарт. (там cuda 7.5)
Мои шаги для установки digits в docker, быть может кому-то пригодится
Сначала нужно установить nvidia-docker по инструкции: https://github.com/NVIDIA/nvidia-docker/wiki/Installation
Потом запустить контейнер nvidia/cuda:8.0-cudnn5-devel-ubuntu16.04 командой:
Присоединиться к запущенному контейнеру:
Внутри контейнера следовать инструкциям по установке caffe и digits:
https://github.com/NVIDIA/DIGITS/blob/master/docs/BuildCaffe.md
https://github.com/NVIDIA/DIGITS/blob/master/docs/BuildDigits.md
В инструкциях указаны не все пакеты, при возникновение ошибок нужно смотреть и доустанавливать. История не сохранилась, из того что помню:
Потом запустить контейнер nvidia/cuda:8.0-cudnn5-devel-ubuntu16.04 командой:
sudo nvidia-docker run --name digits -p 5000:5000 -v /media:/media -d -t -i nvidia/cuda:8.0-cudnn5-devel-ubuntu16.04 /bin/bash
Присоединиться к запущенному контейнеру:
sudo nvidia-docker attach digits
Внутри контейнера следовать инструкциям по установке caffe и digits:
https://github.com/NVIDIA/DIGITS/blob/master/docs/BuildCaffe.md
https://github.com/NVIDIA/DIGITS/blob/master/docs/BuildDigits.md
В инструкциях указаны не все пакеты, при возникновение ошибок нужно смотреть и доустанавливать. История не сохранилась, из того что помню:
sudo apt-get install python-setuptools python-bs4
+1
На будущее. Вдруг кому-то понадобиться. Ещё точно такую же ошибку встретил, когда строки в файлах DIGITS разделял не как \n, а как \n\r (Windows-стандаром).
Судя по всему сетка не может спарсить файлы, обучение падает но она об этом молчит.
Судя по всему сетка не может спарсить файлы, обучение падает но она об этом молчит.
0
Sign up to leave a comment.
Почему супер-мега-про машинного обучения за 15 минут всё же не стать