YOLOv8训练笔记

参考:http://t.csdnimg.cn/C1Ml2

参数

train代码
model = YOLO('ultralytics/cfg/models/v8/yolov8.yaml')
model.load('yolov8n.pt') 

.yaml是指按照你自己设定重新训练模型,从零开始。
.pt文件是在预训练模型的基础上进行训练,yolov8n.pt预训练的是coco数据集中的80个类别,如果你的检测目标就在这80个中,那么你接下来的训练相当于提升了原来的检测能力;如果不在这80个中的话,其实还是相当于从头训练,时间也会更长一些。

device='CUDA'

这是选择运行的设施,如果有N卡,安装了cuda的pytorch,就可以选cuda,如果没有就选cpu,或者直接注释掉也不影响

data='dataset/NWPU-10.yaml'

指定数据集.yaml文件路径,通常用相对路径

 epochs=11,
 batch=1,

epoch是指训练的轮数,原则上讲轮数越多,模型的学习就越透彻充分,但也要避免过拟合的情况
batch是指每个批次的图像数量,在训练过程中,数据会分成多个批次进行处理。一般认为batch越大越好。因为我们的batch越大我们选择的这个batch中的图片更有可能代表整个数据集的分布,从而帮助模型学习。但batch越大占用的显卡显存空间越多,所以还是有上限的。如果设置为-1,则会自动调整批次大小,至你的显卡能容纳的最多图像数量。

patience = 50,

早停的等待轮数,我设置的这个就是:如果等待了50轮,发现模型的性能还是没有提升的话,就提前停止训练进程。这是避免过拟合的一个手段。

数据集文件

我通常把数据集yaml文件放在dataset目录内,即数据集文件的同目录下,这样可以使用相对路径直接指向数据集

path: NWPU-10  # dataset root dir
train: images/train  # train images (relative to 'path') 128 images
val: images/val  # val images (relative to 'path') 128 images

path指向数据集图片的文件夹
train指向训练集图像文件夹
val指向验证集图像文件夹
这里只填写了图像的路径,在实际运行的时候会自动在图像文件夹下寻找标签文件夹

还有另外一种yaml文件写法(根据下载的数据集格式选择用哪种写法)

train: /home/wzh/data/hat/trainval.txt
val: /home/wzh/data/hat/valid.txt
nc: 2
names: ['hat','person']

这里的txt文件里是每张图片的路径,注意是绝对路径!!!

 resume='/home/data/yolov8-main/runs/train/exp4/weights/last.pt',

resume是指如果上一次训练异常中断了,可以给它中断前的训练结果,让它接着上一次继续训练。平时不用的时候注释掉就好了

cache=True,

决定数据加载时是否使用缓存,使用缓存可以加快数据读取速度

 workers=8,

数据加载时的工作线程数。在数据加载过程中,可以使用多个线程并行地加载数据,以提高数据读取速度。这个参数确定了加载数据时使用的线程数,具体的最佳值取决于硬件和数据集的大小。

optimizer='SGD',

选择要使用的优化器

close_mosaic=10,

可以指定一个整数值,表示在训练的最后第几个轮次中禁用mosaic增强。

val = True

是否在训练过程中进行验证

clone一下Git上的改进代码

参考:http://t.csdnimg.cn/Khqxx
首先下载GitTortoiseGit两个软件
(在TortoiseGit下载页面有语言包可以下载,我选择了Chinese simple,其实就是汉化包啦~语言包要点击安装一下,然后在安装软件页面有选择语言的下拉框,就可以看到了)
安装成功之后上github上clone代码的git地址
在这里插入图片描述
然后找到本地准备存放代码的文件夹右键选择git克隆
在这里插入图片描述
在这里插入图片描述
成功!!!!

代码改进

终于到了最关键的一步了
参考:http://t.csdnimg.cn/V7gjy
按步骤来吧~
1.首先找到要插入代码的文件,一般是在ultralytics/nn/modules/block.py里注册要使用的新模块,也有一些在conv.py中注册的模块,这个自己把握
在这里插入图片描述
2.在py文件中插入要改进的模块代码
3.在py文件的最头头有个这个👇
在这里插入图片描述
在这个all的括号里加上自己改进的模块名
4.检查ultralytics/nn/modules/init.py文件中的写法,如果是这样的👇在这里插入图片描述
那就要依次把改进的模块名写进去~加在哪个py文件了就加在哪块,all也要加
如果是这样的👇
在这里插入图片描述
那就不用加了,*就是全部了
5.找到ultralytics/nn/tasks.py文件,在前边引用部分,这一条加上自己的改进模块,如果跟我一样是星号的话,就不用管了(插一句~深切的感受到了代码一定要兼容性高!不然一点改动就要通篇更新!)
在这里插入图片描述
然后就是在下面,我是大概759行的位置,找到这样的代码,同样是在里边添加模块名
在这里插入图片描述
6.因为添加了新的模块,训练使用的yaml文件也就不通用了,所以要根据自己的代码新建一个yaml文件,新建在ultralytics/cfg/models/v8路径下
在这里插入图片描述
然后在原yolov8的网络层进行替换或者添加
在这里插入图片描述
至此!!就结束了~
后边我自己实践一下,看看哪些改进策略搭配起来比较好~如果有进展再更新吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值