前言
前一篇博客大致对yolov5的一些前期准备和训练参数等做了整理(YOLO v5 代码解读及训练、测试实操),此篇博客主要对项目中的train.py
内容进行详细解读,以方便大家学习。
函数train()
train.py函数涉及的篇幅比较大,为提高阅读性,本博客仅提供部门核心进行讲解,详细的完整代码,见网盘地址(提取码:wbqu)。
①超参数及训练参数配置
#获取轮次、批次、总批次(涉及到分布式训练)、权重、进程序号(主要用于分布式训练)#
epochs, batch_size, total_batch_size, weights, rank = \
opt.epochs, opt.batch_size, opt.total_batch_size, opt.weights, opt.global_rank
# Save run settings
#hyp:超参数、opt:训练参数#
with open(log_dir / 'hyp.yaml', 'w') as f:
yaml.dump(hyp, f, sort_keys=False)
with open(log_dir / 'opt.yaml', 'w') as f:
yaml.dump(vars(opt), f, sort_keys=False)
# Configure
cuda = device.type != 'cpu'
init_seeds(2 + rank)#设置随机种子
#加载数据配置信息#
with open(opt.data) as f:
data_dict = yaml.load(f