【YOLO】目标检测 YOLO框架之train.py参数含义及配置总结手册(全)

def parse_opt(known=False): # argparse是python用于解析命令行参数和选项的标准模块,用于解析命令行参数,输入训练的参数和选项。 parser = argparse.ArgumentParser() # 指定一个网络模型 # yolov5s.pt, yolov5m.pt, yolov5l.pt, yolov5x.pt 这四种对应的是img = 640 # yolov5s6.pt, yolov5m6.pt, yolov5l6.pt, yolov5x6.pt 这四种对应的是img = 1280 parser.add_argument('--weights', type=str, default=ROOT / 'weights/yolov5s.pt', help='initial weights path') parser.add_argument('--cfg', type=str, default='', help='model.yaml path') parser.add_argument('--data', type=str, default=ROOT / 'data/WaterSurfaceGarbageDetection.yaml', help='dataset.yaml path') parser.add_argument('--hyp', type=str, default=ROOT / 'data/hyps/hyp.scratch-low.yaml', help='hyperparameters path') parser.add_argument('--epochs', type=int, default=300) # 一次往GPU哪里塞多少张图片了。决定了显存占用大小,默认是16。 parser.add_argument('--batch-size', type=int, default=8, help='total batch size for all GPUs, -1 for autobatch') # img-size # 照片的尺寸,它在网络运行过程中,会将输入图片 / 视频的大小进行一个resize, 再送到我们的神经网络中,输入和输出的大小可能不变,但是在运算的过程中会改变 parser.add_argument('--imgsz', '--img', '--img-size', type=int, default=640, help='train, val image size (pixels)') # 非矩阵大小图片处理方式 parser.add_argument('--rect', action='store_true', help='rectangular training') # resume 重新开始; (中断后)继续;是否从最新的训练模型继续训练 parser.add_argument('--resume', nargs='?', const=True, default=False, help='resume most recent training') # parser.add_argument('--resume', nargs='?', const=True, default=False, help='resume most recent training') parser.add_argument('--nosave', action='store_true', help='only save final checkpoint') parser.add_argument('--noval', action='store_true', help='only validate final epoch') parser.add_argument('--noautoanchor', action='store_true', help='disable AutoAnchor') parser.add_argument('--noplots', action='store_true', help='save no plot files') parser.add_argument('--evolve', type=int, nargs='?', const=300, help='evolve hyperparameters for x generations') parser.add_argument('--bucket', type=str, default='', help='gsutil bucket') # 是否缓存图片,方便训练 parser.add_argument('--cache', type=str, nargs='?', const='ram', help='--cache images in "ram" (default) or "disk"') parser.add_argument('--image-weights', action='store_true', help='use weighted image selection for training') # --device:CUDA设备,如果使用CPU训练就写cpu,如果用一块GPU训练就写0,如果有多块GPU就写 0,1,2,3 parser.add_argument('--device', default='0', help='cuda device, i.e. 0 or 0,1,2,3 or cpu') # 图片尺寸变换 parser.add_argument('--multi-scale', action='store_true', help='vary img-size +/- 50%%') # 训练数据集是单类别还是多类类别 parser.add_argument('--single-cls', action='store_true', help='train multi-class data as single-class') # yolov5官方的预训练权重是基于FP16的,训练的时候使用的是FP32,此处储存空间就增加了一倍; # 同时官方预训练权重是不包含optimizer参数的,而我们训练的时候是把optimizer参数保存了的,这个可以打印出来看一下, # 所以最终我们训练的权重比预训练权重大很多。 parser.add_argument('--optimizer', type=str, choices=['SGD', 'Adam', 'AdamW'], default='SGD', help='optimizer') # 多GPU parser.add_argument('--sync-bn', action='store_true', help='use SyncBatchNorm, only available in DDP mode') # 指数据装载时cpu所使用的进程数,默认为8 parser.add_argument('--workers', type=int, default=8, help='max dataloader workers (per RANK in DDP mode)') # 保存路径 parser.add_argument('--project', default=ROOT / 'runs/train', help='save to project/name') parser.add_argument('--name', default='exp', help='save to project/name') parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment') # 数据处理方式 parser.add_argument('--quad', action='store_true', help='quad dataloader') parser.add_argument('--cos-lr', action='store_true', help='cosine LR scheduler') # 标签平滑 防止过拟合,标签平滑,弱化单个标签的作用 parser.add_argument('--label-smoothing', type=float, default=0.0, help='Label smoothing epsilon') # 早停机制 parser.add_argument('--patience', type=int, default=100, help='EarlyStopping patience (epochs without improvement)') parser.add_argument('--freeze', nargs='+', type=int, default=[0], help='Freeze layers: backbone=10, first3=0 1 2') parser.add_argument('--save-period', type=int, default=-1, help='Save checkpoint every x epochs (disabled if < 1)') parser.add_argument('--local_rank', type=int, default=-1, help='DDP parameter, do not modify') # Weights & Biases arguments parser.add_argument('--entity', default=None, help='W&B: Entity') parser.add_argument('--upload_dataset', nargs='?', const=True, default=False, help='W&B: Upload data, "val" option') parser.add_argument('--bbox_interval', type=int, default=-1, help='W&B: Set bounding-box image logging interval') parser.add_argument('--artifact_alias', type=str, default='latest', help='W&B: Version of dataset artifact to use') opt = parser.parse_known_args()[0] if known else parser.parse_args() return opt
上一篇:Android studio 打开Device Mirroring方便调试


下一篇:udp/tcp回显网络编程