华为云云耀云服务器L实例评测| ultralytics最先进模型YOLOv8深度学习AI训练

目录

前言 

登录服务器

安装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模型已经很不错了。

模型使用

在一段时间的等待之后,模型训练完成会出现如下信息。

然后在我们项目路径的runs/classify下会有我们每次训练保存的数据,如生成的confusion_matrix是一个混淆矩阵的可视化图像,用于展示模型在不同类别上的分类效果,通过观察非对角线上的数值,我们可以了解模型在哪些类别上容易发生错误分类,进而对模型进行调整和改进。

 打开weights文件夹,这里面就是我们训练好的模型了,可以看到这里有bset和last两个权重文件。

  • best.pt文件保存的是在验证集上表现最好的模型权重。在训练过程中,每个epoch结束后都会对验证集进行一次评估,并记录下表现最好的模型的权重。这个文件通常用于推理和部署阶段,因为它包含了在验证集上表现最好的模型的权重,可以获得最佳的性能。
  • last.pt文件则保存的是最后一次训练迭代结束后的模型权重。这个文件通常用于继续训练模型,因为它包含了最后一次训练迭代结束时的模型权重,可以继续从上一次训练结束的地方继续训练模型。

简单来说就是best是最好的,last是最后的,所以我们接下来使用这个模型来识别一下。

使用yolo predict来进行识别,model就是我们刚刚训练好的模型,source是你要拿来识别的图片文件夹路径

yolo predict  model=runs/classify/train/weights/best.pt  source=datasets/test

 命令执行完成之后,还是在runs/classify 识别结果文件夹名称是predict,在图片左上角,xm 0.97,这个xm就是熊猫的意思,是我自己设置的拼音缩写,因为opencv不支持中文,会出现乱码问题,0.97就是识别的conf,意思他有9.7成把握这是熊猫!

 再看一下控制台的监控,我们刚刚在整个训练s模型的过程中,虽然波动有点大,但是对服务器来说还不算构成太大压力。 这一期对云耀云服务器L实例的表现还是相当满意的!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/80181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity 实现多个物体或单个物体 让其单击物体让其显示再次单击让其隐藏

unity 实现单击物体让其显示或隐藏,再次单击显示或隐藏 using System.Collections; using System.Collections.Generic; using Unity.Burst.CompilerServices; using UnityEngine; using UnityEngine.EventSystems; public class ToggleObjects : MonoBehaviour {…

教育领域数据可视化:点亮知识之路

教育领域一直以来都在不断进步和演变,而数据可视化技术正在为这一领域带来一场革命。在过去的几年里,教育者们越来越意识到,通过将教育数据转化为可视化图表和图形,可以更好地理解学生的表现、需求和趋势,从而提供更好…

看好多人都在劝退学计算机,可是张雪峰又 推荐过计算机,所以计算机到底是什么样 的?

张雪峰高考四百多分,但是他现在就瞧不起400多分的学生。说难听点,六七百分的 热门专业随便报谁不会啊? 计算机专业全世界都是过剩的,今年桂林电子科技,以前还是华为的校招大学,今年 计算机2/3待业。这个世…

Scanner类用法(学习笔记)

Scanner类用法(学习笔记,后续会补充) 1.next()用法 package com.yushifu.scanner; import java.util.Scanner;//util java工具包 //Scanner类(获取用户的输入) Scanner s new Scanner&#…

电子词典项目

目录 目录 头文件&#xff1a;dict.h: 源文件&#xff1a;dict.c: 服务器测试文件&#xff1a;serDict.c: 客户端测试文件&#xff1a;cliDict.c: 头文件&#xff1a;dict.h: #ifndef __DICT_H__ #define __DICT_H__ #include<myhead.h> #include<sqlite3.h>#de…

Android设备关机和重启分析

一、简介 重启(reboot) 使设备重新启动,即关闭设备并重新启动它。在重启期间,设备将经历完整的启动过程,包括重新加载操作系统和其他系统组件。这可以解决一些临时的系统问题,也可以应用系统更新或配置更改。 关机(shutdown) 使设备完全关闭,即停止设备的所有运行和…

06乐观锁与悲观锁

乐观锁与悲观锁 悲观锁: 悲观锁比较适合插入数据,简单粗暴但是性能一般 乐观锁: 比较适合更新数据, 性能好但是成功率低(多个线程同时执行时只有一个可以执行成功),还需要访问数据库造成数据库压力过大 模拟乐观锁实现流程 第一步: 数据库中增加商品表t_product并插入一条数…

MySQL索引使用

验证索引效率 在讲解索引的使用原则之前&#xff0c;先通过一个简单的案例&#xff0c;来验证一下索引&#xff0c;看看是否能够通过索引来提升 数据查询性能。在演示的时候&#xff0c;我们还是使用之前准备的一张表 tb_sku , 在这张表中准备了1000w 的记录。 这张表中id为主…

PostgreSQL 逻辑复制搭建

文章目录 前言1. 环境准备1.1 环境介绍1.2 发布端参数配置1.3 订阅端参数配置 2. 逻辑复制搭建2.1 创建逻辑复制用户2.2 发布节点造测试表2.3 发布节点授权2.4 创建 PUBLICATION2.5 订阅节点2.6 添加复制表2.7 删除复制任务 前言 本篇文章介绍 PostgreSQL 的搭建过程&#xff…

Linux抓包工具tcpdump

一、介绍 tcpdump是一个抓包工具&#xff0c;用于实时捕获和分析网络流量。它通常在unix和linux操作系统上使用。tcpdump能够捕获流经网络接口的数据包&#xff0c;并显示或保存它们以供进一步分析。它提供有关每个数据包的详细信息&#xff0c;包括源IP地址、目标IP地址、使用…

EDA(Exploratory Data Analysis)探索性数据分析

EDA(Exploratory Data Analysis)中文名称为探索性数据分析&#xff0c;是为了在特征工程或模型开发之前对数据有个基本的了解。数据类型通常分为两类&#xff1a;连续类型和离散类型&#xff0c;特征类型不同&#xff0c;我们探索的内容也不同。 1. 特征类型 1.1 连续型特征 …

每日一题(两数相加)

每日一题&#xff08;两数相加&#xff09; 2. 两数相加 - 力扣&#xff08;LeetCode&#xff09; 思路 思路&#xff1a; 由于链表从头开始向后存储的是低权值位的数据&#xff0c;所以只需要两个指针p1和p2&#xff0c;分别从链表的头节点开始遍历。同时创建一个新的指针new…

全球汽车安全气囊芯片总体规模分析

安全气囊系统是一种被动安全性的保护系统&#xff0c;它与座椅安全带配合使用&#xff0c;可以为乘员提供有效的防撞保护。在汽车相撞时&#xff0c;汽车安全气囊可使头部受伤率减少25%&#xff0c;面部受伤率减少80%左右。 汽车安全气囊芯片是整个系统的控制核心&#xff0c;并…

给微信小程序添加隐私协议

前些日子&#xff0c;微信官方针对用户的安全信息又进行了增强&#xff0c;这次更新几乎要求所有的小程序都需要进行整改&#xff0c;只要是涉及到用户的隐私的小程序都需要进行整改&#xff0c;这次整改是强制性的。 点开相关指引之后会跳转到下面的链接&#xff1a;参考链接…

【深度学习】Pytorch 系列教程(十一):PyTorch数据结构:3、变量(Variable)介绍

目录 一、前言 二、实验环境 三、PyTorch数据结构 0、分类 1、张量&#xff08;Tensor&#xff09; 2、张量操作&#xff08;Tensor Operations&#xff09; 3、变量&#xff08;Variable&#xff09; 一、前言 ChatGPT&#xff1a; PyTorch是一个开源的机器学习框架&am…

主题配置和 消息发送(一)KafkaTemplate 的使用

一、主题 1.1、配置主题 在应用程序上下文定义一个 KafkaAdmin Bean, 它可以自动将主题添加到代理。通过这个Bean可以将 每一个新建的主题 Topic 添加到应用程序上下文中。下面是一个简单的示例:也可以创建 TopicBuilder 类,使用它创建 Bean 更加简单。 @Bean public Kafka…

C++:string的模拟实现

目录 1.string的四大默认函数 1.1构造函数 1.2析构函数 1.3拷贝构造 1.4赋值运算符重载 2.访问string的三种方式 2.1[]访问 2.2迭代器访问 2.3范围for(本质是迭代器) 3.string相关功能的实现 3.1modify 3.2capacity 3.3access 3.4relations 3.5补充 4.补充 1.s…

C++之哈希表、哈希桶的实现

哈希表、哈希桶的实现 哈希概念哈希冲突哈希函数哈希冲突解决闭散列哈希表闭散列实现哈希表的结构哈希表的插入哈希表的查找哈希表的删除 开散列开散列概念哈希表的结构哈希表的插入哈希表的查找哈希表的删除 哈希概念 顺序结构以及平衡树中&#xff0c;元素关键码与其存储位置…

git everything up-to-date解决方法

git push origin master 总是提示git everything up-to-date,原因是远端没有分支 . 操作如下:(1)查看当前分支名 git branch -av(2)git push --set-upstream origin (当前分支名)

Linux-相关操作

2.2.2 Linux目录结构 /&#xff1a;根目录&#xff0c;一般根目录下只存放目录&#xff0c;在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”&#xff0c;你其实是在告诉电脑&#xff0c;先从/&#xff08;根目录&#xff09;开始&#xf…