#computer-vision #pytorch #web-deployment #object-detection #faster-rcnn
#компьютерное зрение #пыторч #веб-развертывание #обнаружение объектов #быстрее-rcnn #pytorch
Вопрос:
Я учитель, который месяцами изучает компьютерное зрение. Я был очень взволнован, когда смог обучить свою первую модель обнаружения объектов, используя более быструю модель R-CNN от Detectron2. И это работает как заклинание! Супер круто!
Но проблема в том, что для повышения точности я использовал самую большую модель в модельном зоопарке.
Теперь я хочу развернуть это как нечто, что люди могут использовать для облегчения своей работы. Но модель настолько велика, что для вывода одного изображения на моем процессоре, который является Intel i7-8750h, требуется ~ 10 секунд.
Поэтому действительно сложно развернуть эту модель даже на обычном облачном сервере. Мне нужно использовать либо серверы с графическим процессором, либо серверы с процессорами последней модели, которые действительно дороги, и я не уверен, смогу ли я даже компенсировать расходы на сервер в течение нескольких месяцев.
Мне нужно сделать ее меньше и быстрее для развертывания.
Итак, вчера я обнаружил, что есть что-то вроде обрезки модели!! Я был очень взволнован (поскольку я не специалист по компьютерам или данным, не вините меня (((: )
Я прочитал официальную документацию по обрезке PyTorch, но мне действительно трудно понять.
Я обнаружил, что глобальная обрезка — одна из самых простых в исполнении.
Но проблема в том, что я понятия не имею, какие параметры я должен записать в prune.
Как я уже сказал, я использовал более быструю модель R-CNN X-101. У меня это называется «model_final.pth«. И он использует базовый RCNN FPN.yaml, а его метаархитектура — «GeneralizedRCNN».
Это кажется простой настройкой для выполнения. Но, как я уже сказал, поскольку это не моя область, такому человеку, как я, очень трудно.
Я был бы более чем счастлив, если бы вы могли помочь мне в этом шаг за шагом.
Я оставляю свой cfg.yaml, который я использовал для обучения модели, и на всякий случай сохранил его, используя метод «dump» в классе конфигурации Detectron2. Вот ссылка на диск.
Заранее большое вам спасибо.
Ответ №1:
Итак, я полагаю, вы пытаетесь оптимизировать время вывода и достичь удовлетворительной точности. Не зная подробностей о типах ваших объектов, размере обучения, размере изображения, будет сложно предоставить предложения. Однако, как вы знаете, разработка проекта ML — это итеративный процесс, вы можете взглянуть на следующую страницу и проверить вывод и точность.
Я бы посоветовал вам попробовать магистраль R50-FPN и посмотреть, насколько высока ваша точность. Тогда вы получите лучшее представление о том, что делать дальше.
Комментарии:
1. Спасибо, я обучил модель R50-FPN x3, и ее точность почти такая же, и она намного быстрее. Я, вероятно, буду использовать эту модель.
2. Кроме того, большая модель была больше для исследовательских целей, а не для развертывания. github.com/facebookresearch/detectron2/issues /…
3. вы также можете использовать большую модель для обработки данных — arxiv.org/abs/1712.04440
4. если вам нужно еще больше ускорить работу, вы можете использовать еще более мелкую магистраль, такую как Resnet34.
Ответ №2:
Если вы хотите развернуть на мобильных платформах / пограничных развертываниях. Вы можете попробовать недавно выпущенные программные системы D2go.
Это набор инструментов для глубокого обучения, основанный на PyTorch и Detectron2. С помощью современных эффективных магистральных сетей для мобильных устройств. Сквозное обучение модели, квантование и конвейер развертывания. Простой экспорт в формат TorchScript для развертывания.