说来惭愧,学了这么久ML还没有完整运行一次大模型的主要功能,于是以yolov5为例在colab来自己跑一遍里面的train,val,detect这些基本功能。
环境创建
首先克隆模型(加上' !'表示执行的是终端命令)
!git clone https://github.com/ultralytics/yolov5
然后把里面requirements的txt文件环境给pip下来(注意前面要加上%表示命令行命令)
%cd yolov5
%pip install -r requirements.txt
因为colab已经帮我们下载好这些环境了,所以看到很多都显示‘already satisfied’
接着检查一下notebook初始化情况
import torch
import utils
display=utils.notebook_init()
推理
先用自带的yolov5.pt来推理一下
!python detect.py
其实这里可以改的参数有很多,具体都在detect.py里有说明
可以看到结果已经保存到runs/detect/exp目录下
把图片打印出来(也可以直接在文件夹里看)
display.Image(filename='runs/detect/exp/zidane.jpg', width=600)
验证
首先下载用来验证的数据集,这里下的是coco128
torch.hub.download_url_to_file('https://ultralytics.com/assets/coco2017val.zip', 'tmp.zip') # download (780M - 5000 images)
!unzip -q tmp.zip -d ../datasets && rm tmp.zip # unzip
接着运行val.py进行验证(这里的可选参数也都有写在val.py里)
!python val.py --data coco.yaml
训练
执行train.py来训练模型,这里自己设置了一些参数,比如batchsize设置成64,训练次数5次,训练的数据集用的是coco128(必须要之前下载过的并且在data文件夹里有对应的yaml文件),优化器用的Adam,具体的参数在train.py文件里也有说明
!python train.py --batch 64 --epochs 5 --data coco128.yaml --optimizer Adam
训练结果保存在这:
最后用自己训练出的pt文件去推理一次
首先把best.pt文件放到yolov5主文件夹下,不然会报错找不到该文件
再运行detect文件,指定weight为刚刚训练出的best.pt
!python detect.py --weight best.pt
结果保存在runs/detect/exp3里,让我们看看效果:
因为只训练5轮所以推理效果当然不好hhh,想提高精度的话可以epoch设置大一点