1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/MegEngine-MegFlow

Клонировать/Скачать
03-batching-and-pipeline-test.zh.md 4.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 12:04 e2ca17f

Массовое рассуждение и тестирование на уровне пайплайна

В этой статье мы расширяем функциональность tutorial02, добавляя динамическое пакетирование для повышения QPS.

Поддержка динамического пакетирования в классификационной модели

Для дампа resnet требуется поддержка нескольких пакетов ввода, пример можно найти в файле dump_resnet.py.

Использование интерфейса batch_recv для классификации

Новый classify.py должен выглядеть следующим образом:

$ cat flow-python/examples/simple_det_classify/classify.py
...
    def exec(self):
        # batching
        (envelopes, _) = self.inp.batch_recv(self.batch_size, self.timeout)

        if len(envelopes) == 0:
            return
...

Здесь batch_recv имеет следующий список параметров:

Тип Название Значение
Входной batch_size Максимальное количество пакетов
Входной timeout Время ожидания в миллисекундах
Выходной list of Any Набор сообщений, 0 <= len(list) <= batch_size
Выходной bool Указывает, был ли закрыт этот порт. Если значение равно True, это эквивалентно тому, что интерфейс recv возвращает None

Затем объедините данные в Python и настройте inference_batch:

data = np.concatenate(crops)
types = self._model.inference_batch(data)

Тестирование на уровне пайплайна

MegFlow поддерживает прямое использование наборов изображений или списков видео для тестирования без необходимости в HTTP-сервере. Пользователи должны самостоятельно реализовать узел Validation и интегрировать его в CI для проверки правильности и производительности.

Тестирование набора изображений

Рассмотрим пример simple_classification image_test:

...
    [[graphs.nodes]]
    name = "source"
    ty = "ImageInput"
    urls = ["/mnt/data/user/image/","/home/test_data_dir/"]
...

Структура пайплайна остаётся неизменной, но добавляется новый тип источника под названием ImageInput, где пользователь может указать список каталогов изображений через urls.

Метод запуска не меняется:

$ megflow_run -c simple_classification/image_test.toml  -p simple_classification

Тестирование списка видео

Рассмотрим пример simple_det_classify video_test:

...
    [[graphs.nodes]]
    name = "source"
    ty = "VideoInput"
    repeat = 1
    urls = ["rtsp://127.0.0.1:8554/test.ts", "/mnt/data/file.mp4"]
...

Пайплайн остаётся прежним, но добавлен узел VideoInput со следующими параметрами:

Параметр Значение
urls Список URL-адресов видео, включая потоки и локальные файлы
repeat Количество параллельных потоков для каждого URL. Обратите внимание, что для сетевых потоков необходимо учитывать нагрузку на пропускную способность

Способ запуска также не меняется:

$ megflow_run  -c simple_det_classify/video_test.toml   -p simple_det_classify

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/MegEngine-MegFlow.git
git@api.gitlife.ru:oschina-mirror/MegEngine-MegFlow.git
oschina-mirror
MegEngine-MegFlow
MegEngine-MegFlow
master