предисловие
Глубокое обучение — это не только теоретическая инновация, но и прикладная к инженерной практике.
Что касается реализации искусственного интеллекта с глубоким обучением, уже существует множество решений, будь то компьютер, мобильный или встроенный, наиболее практично запускать веса обученной нейронной сети на различных платформах.
(caffe2-ios:GitHub.com/Кляйн юань/C…)
Вот краткий рассказ о текущей ситуации с нашей общей посадкой глубокого обучения в 2018 году.
Opencv
По сравнению со всеми, Opencv более знаком.Это очень популярная и популярная библиотека обработки изображений с открытым исходным кодом.Для тех, кто занимается глубоким обучением искусственного интеллекта, Opencv, естественно, не может быть оставлен позади. Еще в прошлом году Opencv начал добавлять модуль Dnn и обновлялся, но нужно немного отметить,Opencv
Модуль глубокого обучения используется дляinference
Предполагается, а не используется для обучения.
Почему, потому что уже есть много отличных фреймворков глубокого обучения (TensorFlow, Pytorch), Opencv нужно только прочитать обученную весовую модель для вывода.
(выпущен opencv-4.0.0)
Я попытался запустить Opencv-версию yolov3 сам, использовал веса, официально обученные yolo, прочитал веса и использовал прямую сеть Opencv для запуска - скорость в порядке, вi5-7400Предполагаемый на ЦП600+ms.
И я работал с версией процессора MacBookPro 2,3 ГГц 2017 года (i5-7260u).500ms. Имейте в виду, что это полная версия yolo-v3. Если его дополнительно оптимизировать, он может работать со скоростью 10 кадров в секунду на немного лучшей стороне процессора!
Также вlearnopencvТакже есть подробные обзоры в соответствующих статьях:
В 6-ядерном 12-поточном процессоре он может работать до200ms, скорость довольно высокая, и еще есть место для оптимизации.
Причина, по которой версия Opencv намного быстрее, чем версия Darknet, заключается в том, что многие библиотеки оптимизации, такие как CPU-MKL, используются в процессе написания операций на стороне ЦП Opencv, который хорошо оптимизирован для Intel и в полной мере использует возможности преимущества многопоточности (важно большее количество потоков, параллельные вычисления намного быстрее, чем последовательные).
Разумеется, на этом оптимизации не заканчиваются, Opencv также постоянно обновляется:
Opencv можно использовать в качестве хорошей платформы для вывода глубокого обучения.Пока Opencv установлен, вы можете запускать код глубокого обучения без установки других сред глубокого обучения. Но следует отметить, что наилучшая практика Opencv находится на стороне процессора.Opencv на стороне графического процессора не очень хорошо поддерживает cuda.Opencv использует только OpenCL для поддержки графического процессора, но скорость не такая высокая, как у библиотеки cuda.
Pytorch-v1.0
Выпущена предварительная версия Pytorch-v1.0, а официальная версия должна быть выпущена в первый день Национального дня.
Но мы уже знаем из документа Pytorch 1.0, почему Pytorch-v1.0 вызывается изисследований в производство:
Три самых важных момента:
- Распределенное приложение
- Полная поддержка ONNX
- Разверните среду сборки с помощью C++
Кратко поговорим о третьем пункте.После прочтения официальной документации Pytorch также проделал работу, аналогичную Opencv.Новый Pytorch поддерживает прямое применение части C++ Pytorch, так что компиляция может выполнять только часть вывода Pytorch без установки всех Компоненты Pytorch.
В ближайшее время я проверю скорость Pytorh и Opencv на стороне ЦП, чтобы увидеть, какой из них лучше оптимизирован для ЦП.
IOS, Андроид
Самая большая изюминка IOS: новейший бионический процессор A12 для iPhone!
Скорость работы 5 Вт миллиардов раз в секунду может быть ничем по сравнению с профессиональными графическими картами, но на стороне мобильного телефона ее значение можно себе представить.
Я просто не знаю конкретную скорость. Могу ли я запустить Yolo в режиме реального времени? Ждите оценки позже.
Однако в приложении HomeCourt (которое еще недоступно в Китае) с высокой производительностью A12 кажется, что человеческий скелет можно отслеживать в режиме реального времени. Все еще стоит с нетерпением ждать.
Что касается Android, поскольку чипы Huawei специально не анонсировались, большинство текущих фреймворков нейронных сетей для мобильных устройств работают на ЦП.
Скорость зависит от оптимизации на стороне руки.
Двумя наиболее популярными фреймворками являются ncnn (в основном процессор) и Mace (также поддерживает GPU). Оба находятся в стадии развития, первый родился около года, а второй родился меньше полугода.
Ждите и вы!
постскриптум
При внедрении глубокого обучения самым утомительным является настройка различных сред.Я надеюсь, что основные фреймворки глубокого обучения могут увеличить инвестиции в реализацию в будущем, чтобы добиться быстрого и удобного развертывания!
С информацией о конфигурации Openpose:
(OpenPoseТребования для Windows более жесткие)
дразни меня
- Если вы со мной единомышленники, Лао Пан очень хочет с вами общаться;
- Если вам нравится контент Лао Пана, подпишитесь и поддержите его.
- Если вам понравилась моя статья, надеюсь вам понравился ? Избранное ? Комментарий ? Три в ряд, это действительно важно для меня!
Я хочу знать, как Лао Пан научился наступать на яму, и я хочу обменяться со мной вопросами ~ Пожалуйста, обратите внимание на публичный аккаунт "старый блог". Лао Пан также организует некоторые из своих частных коллекций, надеясь помочь всем, нажмитеТаинственный порталПолучать.