简体中文 | English
YOLOv4在网络结构层面和YOLOv3没有太大改变。只是骨干网络由CSPDarknet53替代了原始的Darknet53,同时引入SPP和PAN思想进行不同尺度的特征融合。
采用Netron可视化YOLOv4模型结构 点击【这里】查看细节
yolo_loss_type=yolov5
,具体细节可参考YOLOv5章节说明。设置为None或yolov4将采用原始YOLO系列损失函数。自行准备训练需要的数据集,指定需要训练的数据位置,具体操作请查看【这里】有关数据集准备。 找到yolov4的配置文件,修改如下部分内容
data = dict(
batch_size=64, #累计批次大小,框架会到累计到该批次大小后累计更新梯度
subdivisions=8, #分批次数量,实际批次大小为batch_size/subdivisions,视你自己的机器配置修改该值大小。如果显存充足该值可设置小一些,如果显存不足,该值可设置大一些。
workers_per_gpu=2, #dataloader加载数据工作线程数量
train=dict(
type='Custom',
data_root=r'xxxx', #训练数据根目录
ann_file=r'annotations/train.txt', #标签文件位置,相对路径。data_root+ann_file
img_prefix='images', #图片存放路径目录,相对路径。 data_root+img_prefix
name_file='annotations/label.names', #标签索引对应名称
pipeline=train_pipeline
),
val=dict(
type='Custom',
data_root=r'xxxx', #同上
ann_file=r'annotations/val.txt', #同上
img_prefix='images', #同上
name_file='annotations/label.names', #同上
pipeline=val_pipeline
),
test=dict(
type='Custom',
data_root=r'xxx', #同上
ann_file=r'annotations/test.txt', #同上
img_prefix='images', #同上
name_file='annotations/label.names', #同上
pipeline=test_pipeline
)
)
python tools/train.py ${CONFIG_FILE}
如果您想在命令中指定工作目录,可以添加一个参数--work_dir ${YOUR_WORK_DIR}
。
例如采用YOLOv4训练模型:
python tools/train.py cfg/yolov4_coco_100e.py --device ${device} --validate
python tools/train.py ${CONFIG_FILE} --device ${device} [optional arguments]
例如采用YOLOv4训练模型:
python tools/train.py cfg/yolov4_coco_100e.py --device 0,1,2 --validate
可选参数:
--validate
(强烈建议):在训练epoch期间每一次k(默认值是1,可以像这样修改this)来执行评估。
--work_dir ${WORK_DIR}
:覆盖配置文件中指定的工作目录。
--device ${device}
: 指定device训练, 0 or 0,1,2,3 or cpu,默认全部使用。
--resume_from ${CHECKPOINT_FILE}
:从以前训练的checkpoints文件恢复训练。
--multi-scale
:多尺度缩放,尺寸范围为训练图片尺寸+/- 50%
resume_from
和load_from
的不同:
resume_from
加载模型权重和优化器状态,并且训练也从指定的检查点继续训练。它通常用于恢复意外中断的训练。
load_from
只加载模型权重,并且训练从epoch 0开始。它通常用于微调。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。