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

OSCHINA-MIRROR/rWySp2020-mmtracking

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
quick_run.md 9.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 19:32 8c2b4a3

./tools/dist_test.sh ${CONFIG_FILE} ${GPU_NUM} [--checkpoint ${CHECKPOINT_FILE}] [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}]

Необязательные аргументы:

CHECKPOINT_FILE: имя файла контрольной точки. Определять его не нужно, если в конфигурации указаны контрольные точки.

RESULT_FILE: файл результатов в формате pickle. Если не указано, результаты не будут сохранены в файл.

EVAL_METRICS: показатели для оценки результатов. Допустимые значения зависят от набора данных, например, bbox доступен для ImageNet VID, track — для LaSOT, а bbox и track подходят для MOT17.

--cfg-options: если указано, необязательные параметры cfg будут объединены с файлом конфигурации.

--eval-options: если указано, пара ключ-значение необязательных параметров eval cfg будет передана в функцию dataset.evaluate(), это только для оценки.

--format-only: если указано, результаты будут отформатированы в официальном формате.

Примеры:

Предположим, что вы уже скачали контрольные точки в каталог checkpoints/.

  1. Протестируйте DFF на ImageNet VID и оцените mAP bbox.

    python tools/test.py configs/vid/dff/dff_faster_rcnn_r101_dc5_1x_imagenetvid.py \
        --checkpoint checkpoints/dff_faster_rcnn_r101_dc5_1x_imagenetvid_20201218_172720-ad732e17.pth \
        --out results.pkl \
        --eval bbox
  2. Протестируйте DFF с 8 GPU и оцените mAP bbox.

    ./tools/dist_test.sh configs/vid/dff/dff_faster_rcnn_r101_dc5_1x_imagenetvid.py 8 \
        --checkpoint checkpoints/dff_faster_rcnn_r101_dc5_1x_imagenetvid_20201218_172720-ad732e17.pth \
        --out results.pkl \
        --eval bbox
  3. Протестируйте SiameseRPN++ на LaSOT и оцените успех и нормализованную точность.

    python tools/test.py configs/sot/siamese_rpn/siamese_rpn_r50_1x_lasot.py \
        --checkpoint checkpoints/siamese_rpn_r50_1x_lasot_20201218_051019-3c522eff.pth \
        --out results.pkl \
        --eval bbox
  4. Протестируйте SiameseRPN++ с 8 GPU и оцените успех и нормализованную точность.

    ./tools/dist_test.sh configs/sot/siamese_rpn/siamese_rpn_r50_1x_lasot.py 8 \
        --checkpoint checkpoints/siamese_rpn_r50_1x_lasot_20201218_051019-3c522eff.pth \
        --out results.pkl \
        --eval bbox
  5. Протестируйте Tracktor на MOT17 и оцените метрики CLEAR MOT.

    python tools/test.py configs/mot/tracktor/tracktor_faster-rcnn_r50_fpn_4e_mot17-public-half.py \
        --eval track
  6. Протестируйте Tracktor с 8 GPU и оцените метрики CLEAR MOT.

    ./tools/dist_test.sh  \
        configs/mot/tracktor/tracktor_faster-rcnn_r50_fpn_4e_mot17-public-half.py 8 \
        --eval track
    ``` **Если вы хотите запустить несколько заданий на одном компьютере**, например, 2 задания обучения с 4 GPU на машине с 8 GPU, вам необходимо указать разные порты (по умолчанию 29500) для каждого задания, чтобы избежать конфликта связи.
    

Если вы используете dist_train.sh для запуска обучающих заданий, вы можете установить порт в командах.

CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${CONFIG_FILE} 4
CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG__FILE} 4

Обучение на нескольких узлах

MMTracking использует пакет torch.distributed для распределённого обучения. Таким образом, в качестве основного использования можно запустить распределённое обучение через утилиту PyTorch.

Управление заданиями с помощью Slurm

Slurm — это хорошая система планирования заданий для вычислительных кластеров. В кластере, управляемом Slurm, вы можете использовать slurm_train.sh, чтобы создать обучающие задания. Он поддерживает как одноузловое, так и многоузловое обучение.

Основное использование выглядит следующим образом:

[GPUS=${GPUS}] ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} ${WORK_DIR}

Вы можете проверить исходный код, чтобы просмотреть все аргументы и переменные среды.

При использовании Slurm параметр порта должен быть установлен одним из следующих способов:

  1. Установите порт через --options. Это более рекомендуется, поскольку не изменяет исходные конфигурации.

    CUDA_VISIBLE_DEVICES=0,1,2,3 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config1.py ${WORK_DIR} --options 'dist_params.port=29500'
    CUDA_VISIBLE_DEVICES=4,5,6,7 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config2.py ${WORK_DIR} --options 'dist_params.port=29501'
  2. Измените файлы конфигурации, чтобы установить различные порты связи.

    В config1.py установите:

    dist_params = dict(backend='nccl', port=29500)

    В config2.py установите:

    dist_params = dict(backend='nccl', port=29501)

Затем вы можете запустить два задания с config1.py и config2.py.

CUDA_VISIBLE_DEVICES=0,1,2,3 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config1.py ${WORK_DIR}
CUDA_VISIBLE_DEVICES=4,5,6,7 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config2.py ${WORK_DIR}

Запуск с настроенными наборами данных и моделями

В этой заметке вы узнаете, как выполнять вывод, тестирование и обучение с настроенными наборами данных и моделями.

Основные шаги следующие:

  1. Подготовьте настроенный набор данных (если применимо).
  2. Подготовьте настроенную модель (если применимо).
  3. Подготовьте конфигурацию.
  4. Обучите, протестируйте и выполните вывод новых моделей.

Подготовка настроенного набора данных

Существует три способа поддержки нового набора данных в MMTracking:

  1. Реорганизовать набор данных в формат CocoVID.
  2. Реализовать новый набор данных.

Обычно мы рекомендуем использовать первый метод, который обычно проще второго.

Подробности настройки наборов данных приведены в tutorials/customize_dataset.md.

Подготовка настроенной модели

Мы предоставляем инструкции по настройке моделей различных задач.

Подготовка конфигурации

Следующим шагом является подготовка конфигурации, чтобы набор данных или модель могли быть успешно загружены. Более подробную информацию о системе конфигурации можно найти в tutorials/config.md.

Обучение новой модели

Чтобы обучить модель с новой конфигурацией, вы можете просто запустить:

python tools/train.py ${NEW_CONFIG_FILE}

Для получения более подробной информации обратитесь к инструкциям по обучению выше.

Тестирование и вывод

Чтобы протестировать обученную модель, вы можете просто запустить:

python tools/test.py ${NEW_CONFIG_FILE} ${TRAINED_MODEL} --eval bbox track

Для более подробного использования обратитесь к инструкциям тестирования или... Инструкции по логическому выводу выше.

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

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

1
https://api.gitlife.ru/oschina-mirror/rWySp2020-mmtracking.git
git@api.gitlife.ru:oschina-mirror/rWySp2020-mmtracking.git
oschina-mirror
rWySp2020-mmtracking
rWySp2020-mmtracking
master