Huaxu Sentinel Active Safety Platform with embedded algorithm code, Docker Compose setup, and vendored dataset scaffolds for clone-and-run. Co-authored-by: Cursor <cursoragent@cursor.com>
76 lines
2.1 KiB
Python
76 lines
2.1 KiB
Python
import os
|
|
import cv2
|
|
import torch
|
|
import torch.nn.parallel
|
|
import torch.backends.cudnn as cudnn
|
|
import argparse
|
|
import numpy as np
|
|
import random
|
|
from clrnet.utils.config import Config
|
|
from clrnet.engine.runner import Runner
|
|
from clrnet.datasets import build_dataloader
|
|
|
|
|
|
def main():
|
|
args = parse_args()
|
|
os.environ["CUDA_VISIBLE_DEVICES"] = ','.join(
|
|
str(gpu) for gpu in args.gpus)
|
|
|
|
cfg = Config.fromfile(args.config)
|
|
cfg.gpus = len(args.gpus)
|
|
|
|
cfg.load_from = args.load_from
|
|
cfg.resume_from = args.resume_from
|
|
cfg.finetune_from = args.finetune_from
|
|
cfg.view = args.view
|
|
cfg.seed = args.seed
|
|
|
|
cfg.work_dirs = args.work_dirs if args.work_dirs else cfg.work_dirs
|
|
|
|
cudnn.benchmark = True
|
|
|
|
runner = Runner(cfg)
|
|
|
|
if args.validate:
|
|
runner.validate()
|
|
elif args.test:
|
|
runner.test()
|
|
else:
|
|
runner.train()
|
|
|
|
|
|
def parse_args():
|
|
parser = argparse.ArgumentParser(description='Train a detector')
|
|
parser.add_argument('config', help='train config file path')
|
|
parser.add_argument('--work_dirs',
|
|
type=str,
|
|
default=None,
|
|
help='work dirs')
|
|
parser.add_argument('--load_from',
|
|
default=None,
|
|
help='the checkpoint file to load from')
|
|
parser.add_argument('--resume_from',
|
|
default=None,
|
|
help='the checkpoint file to resume from')
|
|
parser.add_argument('--finetune_from',
|
|
default=None,
|
|
help='the checkpoint file to resume from')
|
|
parser.add_argument('--view', action='store_true', help='whether to view')
|
|
parser.add_argument(
|
|
'--validate',
|
|
action='store_true',
|
|
help='whether to evaluate the checkpoint during training')
|
|
parser.add_argument(
|
|
'--test',
|
|
action='store_true',
|
|
help='whether to test the checkpoint on testing set')
|
|
parser.add_argument('--gpus', nargs='+', type=int, default='0')
|
|
parser.add_argument('--seed', type=int, default=0, help='random seed')
|
|
args = parser.parse_args()
|
|
|
|
return args
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|