./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/.
Протестируйте 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
Протестируйте 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
Протестируйте 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
Протестируйте 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
Протестируйте Tracktor на MOT17 и оцените метрики CLEAR MOT.
python tools/test.py configs/mot/tracktor/tracktor_faster-rcnn_r50_fpn_4e_mot17-public-half.py \
--eval track
Протестируйте 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 параметр порта должен быть установлен одним из следующих способов:
Установите порт через --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'
Измените файлы конфигурации, чтобы установить различные порты связи.
В 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}
В этой заметке вы узнаете, как выполнять вывод, тестирование и обучение с настроенными наборами данных и моделями.
Основные шаги следующие:
Существует три способа поддержки нового набора данных в MMTracking:
Обычно мы рекомендуем использовать первый метод, который обычно проще второго.
Подробности настройки наборов данных приведены в 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 )