From b111377548483e0adc97be5d14bb6c72e88320e0 Mon Sep 17 00:00:00 2001 From: Bubbliiiing <47347516+bubbliiiing@users.noreply.github.com> Date: Mon, 18 Oct 2021 20:08:52 +0800 Subject: [PATCH] Update train.py --- train.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/train.py b/train.py index 7b321ca..401c323 100644 --- a/train.py +++ b/train.py @@ -14,6 +14,27 @@ from utils.dataloader import YoloDataset, yolo_dataset_collate from utils.utils import get_anchors, get_classes from utils.utils_fit import fit_one_epoch +''' +训练自己的目标检测模型一定需要注意以下几点: +1、训练前仔细检查自己的格式是否满足要求,该库要求数据集格式为VOC格式,需要准备好的内容有输入图片和标签 + 输入图片为.jpg图片,无需固定大小,传入训练前会自动进行resize。 + 灰度图会自动转成RGB图片进行训练,无需自己修改。 + 输入图片如果后缀非jpg,需要自己批量转成jpg后再开始训练。 + + 标签为.xml格式,文件中会有需要检测的目标信息,标签文件和输入图片文件相对应。 + +2、训练好的权值文件保存在logs文件夹中,每个epoch都会保存一次,如果只是训练了几个step是不会保存的,epoch和step的概念要捋清楚一下。 + 在训练过程中,该代码并没有设定只保存最低损失的,因此按默认参数训练完会有100个权值,如果空间不够可以自行删除。 + 这个并不是保存越少越好也不是保存越多越好,有人想要都保存、有人想只保存一点,为了满足大多数的需求,还是都保存可选择性高。 + +3、损失值的大小用于判断是否收敛,比较重要的是有收敛的趋势,即验证集损失不断下降,如果验证集损失基本上不改变的话,模型基本上就收敛了。 + 损失值的具体大小并没有什么意义,大和小只在于损失的计算方式,并不是接近于0才好。如果想要让损失好看点,可以直接到对应的损失函数里面除上10000。 + 训练过程中的损失值会保存在logs文件夹下的loss_%Y_%m_%d_%H_%M_%S文件夹中 + +4、调参是一门蛮重要的学问,没有什么参数是一定好的,现有的参数是我测试过可以正常训练的参数,因此我会建议用现有的参数。 + 但是参数本身并不是绝对的,比如随着batch的增大学习率也可以增大,效果也会好一些;过深的网络不要用太大的学习率等等。 + 这些都是经验上,只能靠各位同学多查询资料和自己试试了。 +''' if __name__ == "__main__": #-------------------------------# # 是否使用Cuda -- GitLab