def parse_opt(known=False):
parser = argparse.ArgumentParser()
parser.add_argument(’–weights’, type=str, default=ROOT / ‘yolov5s.pt’, help=‘initial weights path’)
#指定一个训练好的模型的路径,初始化我们网络模型参数。从头开始训练default=’ ‘为空;
parser.add_argument(’–cfg’, type=str, default=’’, help=‘model.yaml path’)
#cfg为config的缩写,关于模型的一些配置,放在model文件夹下,default= ‘models/yolov5s.yaml’可以使用已有的模型配置
#前面两行:所训练的模型结构=cfg;模型初始化参数=weight
parser.add_argument(’–data’, type=str, default=ROOT / ‘data/coco128.yaml’, help=‘dataset.yaml path’)
#指定训练数据集,位置在data/coco128.yaml,会自动下载数据集(可以手动),指定下载位置和类别代号
parser.add_argument(’–hyp’, type=str, default=ROOT / ‘data/hyps/hyp.scratch.yaml’, help=‘hyperparameters path’)
#超参数
parser.add_argument(’–epochs’, type=int, default=300)
#训练多少轮
parser.add_argument(’–batch-size’, type=int, default=16, help=‘total batch size for all GPUs’)
#多少数据打包一个batch
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’)
#矩阵训练方式,减少训练过程中不必要的信息,使模型训练速度更快
parser.add_argument(’–resume’, nargs=’?’, const=True, default=False, help=‘resume most recent training’)
#在某模型上继续训练,default=‘模型位置’
parser.add_argument(’–nosave’, action=‘store_true’, help=‘only save final checkpoint’)
#只保存最后一次训练的模型的一些权重数据,保存为pt文件
parser.add_argument(’–noval’, action=‘store_true’, help=‘only validate final epoch’)
#指定最后一个ap进行测试
parser.add_argument(’–noautoanchor’, action=‘store_true’, help=‘disable autoanchor check’)
#锚点
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’)
parser.add_argument(’–device’, default=’’, 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’)
parser.add_argument(’–adam’, action=‘store_true’, help=‘use torch.optim.Adam() optimizer’)
parser.add_argument(’–sync-bn’, action=‘store_true’, help=‘use SyncBatchNorm, only available in DDP mode’)
parser.add_argument(’–workers’, type=int, default=0, help=‘maximum number of dataloader workers’)
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(’–linear-lr’, action=‘store_true’, help=‘linear LR’)
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’, type=int, default=0, help=‘Number of layers to freeze. backbone=10, all=24’)
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’)