目录
前言
登录服务器
安装pyhton
部署yolov8
安装Pytorch
下载权重文件
训练模型
前言
前几期我们在云耀云服务器L实例上分别使用docker和直接在centos上部署了yolov5识别API,前端项目vue,后端项目.net Core Web Api,但是从监控图上来看,都没什么压力,调用接口也很流畅。
在实例介绍中看到,华为云擎天架构加持,软硬协同结合顶尖AI算法智能调度。于是有了一个疯狂的想法,这期我们给服务器来点压力,[坏笑!],这期我们要在服务器上部署yolov8进行AI模型训练。
YOLOv8 发布于2023 年 1月 10 号,是 ultralytics 公司在 开源的 YOLOv5 的下一个重大更新版本,是一种尖端的、最先进的 (SOTA) 模型
登录服务器
因为要训练AI模型,我们要处理图片,查看图片效果,方便起见,这次服务器我选择了系统镜像Windows Server
拿到服务器,第一步还是要重置密码,在控制台,找到对应的服务器,点击操作列的更多、重置密码。
记得一定要勾选自动重启,这样我们的密码才能立马生效!
然后我们有两种方式来登录,的一种是直接点击操作列的远程登录,在其他方式这里,点击立即登录来使用控制台提供的VNC方式登录!
或者快捷键Win + R ,在弹出的页面中输入 mstsc,确定!
然后在弹出的远程桌面连接中,输入我们服务器的弹性IP
然后在验证界面,点击下面的更多选择,选择其他账户
用户名:Administrator 密码:刚刚重置密码时你设置的密码
弹出的无法验证身份,点击是 !
然后就连上我们的服务器了,桌面非常干净,只有一个回收站!
安装pyhton
因为服务器上什么环境都没有,我们先来安装python3,在官网随便下一个大于大于3.8的python安装包,选择amd64的exe版本,安装的时候勾选最底下的帮我们添加环境变量
等待一会之后,出现下面这个界面就是安装成功了。
打开控制台,执行 python -V 和 pip -V ,看看我们的环境变量是否设置成功。
部署yolov8
去官网将yolov8的源码下载下来
ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite (github.com)
安装项目依赖
pip install ultralytics
pip install yolo
速度慢的话换国内镜像,在命令后面加上
-i https://pypi.tuna.tsinghua.edu.cn/simple numpy
安装Pytorch
到官网安装Pytorch
Start Locally | PyTorch
在安装之前看看自己买的服务器是否有GPU,可以使用命令来查看
- 查看CPU型号:cat /proc/cpuinfo | grep "model name"
- 查看GPU型号(Nvidia GPU):nvidia-smi --query-gpu=gpu_name --format=csv
- 查看GPU型号(AMD Radeon GPU):sudo lshw -C display
因为我这台是只有CPU的,因此在官网中选择Stable(稳定版),系统Linux,用pip来安装吧,然后Compute Platform选择CPU,然后把Run this Command:中的命令👇丢到服务器上去执行
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
下载权重文件
因为项目没有权重文件,跑命令的时候他会自己去官网下载权重文件,但是因为是从github上下载,太慢了,我选择自己下好再拉到服务器上。
在yolo中有几种识别模式,因为我们目的只是测试服务器性能,所以我们选择Classify,图像分类模型,他的素材比较好整理。
去到官网,找到下图中的模型表,点击model列的模型名字,就会自动下载了,然后丢到我们项目的根目录,不同的模型,识别的速度,目标大小,准确度都不一样,并且对电脑性能的要求也不一样,在官网中都有详细介绍。这里我测试使用的是yolov8s-cls
ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite (github.com)
项目部署好了,模型有了,接下来就差数据集了,像下图中这种格式,我们只需要以类名称为文件夹,然后在统一放到一个大文件夹下面就好了,因为分类识别只需要识别出这个图片是什么,而不需要知道具体在什么位置,因此不需要进行标注,所以他的数据集是最简单的,这也是为什么我选择这个模型在这里做演示。
训练模型
然后我们执行命令来开始训练模型了。
yolo detect train data=你放数据集的路径 model=yolov8s-cls.pt epochs=100 imgsz=640
执行完发现报了下图的错,缺少msvc-runtime库,使用下面命令安装
pip install msvc-runtime
然后再执行一次识别命令,可以看到大概1分钟一轮,
看一下性能监视器,我只能说,遥遥领先!说实话我一开始觉得他会直接宕机的,每想到居然可以一分钟一轮的训练,这已经是很好的成绩了
换成最大的模型再试一次,服务器没有死撑,把任务停掉了,控制台打印内存不足,意料之中,不过能带的动s模型已经很不错了。
再看一下控制台的监控,我们刚刚在训练s模型的过程中,虽然波动有点大,但是对服务器来说还不算构成太大压力。