图形深度学习之-数据炼丹(训练)

170 阅读3分钟

上篇文章我们介绍了如何对需要训练的数据进行标注,详细可看:

图形深度学习之炼丹必备技能-数据标注

有了数据标注的基础,接下来就可以对标注的数据进行模型训练了,我这里使用的训练模型和环境做个简单介绍:

  • Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz 4.20 GHz
  • GPU-1060-6GB
  • 48G内存
  • Python 3.10.x
  • CUDA - 11.8
  • 训练模型:YoloV8
  • TensorRT - 8.6.1.6
  • cudNN - 8.9.6.50

这里如果不知道如何安装 CUDA、TensorRT和cudNN的,可以参考之前的文章:

10分钟之内在windows系统中安装好CUDA、TensorRT和cudNN

Python环境就不多说了,这是必备的,为了其他环境和需求稳定这里采用3.10.x版本。

YOLOv8环境可以进其官网了解:Home - Ultralytics YOLOv8 Docs

下面正式进入模型训练步骤:

1.在Roboflow中点击生成按钮后,右侧选择需要训练的图片和训练、验证测试比例,为了提高准确度和一致性,需要注意将图片全部处理成640*640像素的大小

2.其他设置选择默认,点击创建(Create)按钮

3.创建后会看到如下画面,点击画面中的Export Dataset

4.格式选择YOLOv8 并选择 download zip to computer后点击继续(Continue),弹出等待下载

5.下载后的文件解压到本地文件夹,解压包中对应内容如下:

6.使用记事本打开data.yaml文件,windows系统最好将路径修改成绝对路径,该路径指向刚才下载的压缩包解压后的文件夹路径:

7.接下来在data.yaml文件同级别的文件夹中创建一个.py文件,我这里创建的是main.py,文件内容:

# 引入YOLO模型
from ultralytics import YOLO
# 使用YOLOv8的s模型进行训练
model = YOLO('yolov8s.pt')
if __name__ == '__main__':
    # 使用同级别目录下的data.yaml文件进行初始化配置,并训练100次
    results = model.train(data="./data.yaml", epochs=100)
    # 对训练结果做验证
    results = model.val()
    # 将训练结果转为pt数据,以便其他平台或研发语言使用,后续再讲如何使用
    success = YOLO("runs/detect/train/weights/best.pt").export(format="engine")

8.使用命令提示符(cmd)开始训练,看到类似以下的信息便开始训练了,但需注意,很多同学会和我这里一样显示的是CPU,没用到GPU,这就是环境没配置好,GPU的训练速度要比CPU快非常多,可以看到第二张图中的GPU_mem是0G,代表没有识别到GPU

关于如何使用GPU训练、怎么配置环境才能使用GPU进行训练的话题我会再做一期详细解析和教程。

咱们继续...

9.训练结束就能看到类似下列图片的内容,包含了训练次数和最好的一次结果存在哪里:

10.训练结果目录中包含了很多训练过程的指标数据,具体数据解析可先自行搜索,后续我会详细介绍如何根据指标调优。

最后,训练结束,我们来测试一下训练的模型效果吧:

看起来还不错,能够识别到标注的人物并给出对应识别的信息,因为训练数据简单只有1张图片,也只训练了3次。如果给的数据够多,训练次数够的话,肯定可以精准识别了。

在训练时重点关注这3个指标:

点赞+关注是催更我最大的动力。

有什么疑问和不懂欢迎留言评论交流。