当前位置: 首页 > news >正文

【yolov8系列】ubuntu上yolov8的开启训练的简单记录

前言

yolov8的广泛使用,拉取yolov8源码工程,然后配置环境后直接运行,初步验证自己数据的检测效果,在数据集准备OK的情况下 需要信手拈来,以保证开发过程的高效进行。
本篇博客更注意为了方便自己使用时参考。顺便也记录下ubuntu下的一些简单的常用的操作。

1 ubuntu的相关命令

ubuntu关于账号的操作

  1. 添加删除用户
    sudo adduser XXX       ## 新增用户
    sudo userdel -r XXX    ## 删除用户# 更改用户主目录
    # sudo usermod -d /target_dir/ username
    # sudo chown -R username target_dir/  #将文件夹所有权给该用户# sudo useradd -r -m -s /bin/bash username (-r root)
    # sudo passwd XXXX
    # sudo userdel -r username
    # deluser USER --remove-home --remove-all-files
    
  2. 修改密码
    sudo passwd user
    
  3. 查看所有用户
    grep bash /etc/passwd
    
  4. 添加删除管理员权限
    sudo adduser username sudo
    sudo deluser username sudo
    

ubuntu下磁盘信息查看

  1. 查看硬盘容量
    df -h                              ## 查看硬盘容量
    du -h --max-depth=1         ## 查看当前路径文件夹大小
    
  2. 查看文件夹详细信息
    ls -l
    ls -al
    
  3. 统计文件夹中文件数量
    ls -l | grep "^-" | wc -l
    
  4. 查看显卡占用
    nvidia-smi           # 显示PID
    ps -f -p 26359     # 查询PID
    

2 安装Anaconda

官网上下载不流畅,清华镜像丝滑下载(官方通知不更新 但够使用),链接为
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/ mini版本,都能正常使用。

个人选择miniconda安装,下载【Miniconda3-4.7.12-Linux-x86_64.sh】

chmod +x Miniconda3*.sh
bash Miniconda3*.sh1 按 enter 键2 输入yes并enter3 选择路径:enter4 是否添加环境变量: yes5 是否安装Microsoft vs no就行(因为已经安装了vscode和qt,所以这里no就行)
source ~/.bashrc
conda list                   #显示自己已安装包
conda create -n env_name(自己写名字) python=3.7(版本号) # 创建虚拟环境
source activate env_name    #激活虚拟环境
deactivate                 # 退出虚拟环境
conda env list            # 查看已有虚拟环境
conda install# 安装包
conda remove ~         # 卸载包
conda update           # 更新

3 安装VScode

https://blog.csdn.net/magic_ll/article/details/119679279

4 YOLOV8的环境配置与运行

4.1 工程下载与环境配置

工程下载ultralytics 8.0.36。

conda create -n YOLOV8 python=3.8
conda activate YOLOV8
pip install ultralytics==8.0.36
pip list          ## 查看安装列表
## 剩余需要的库,正常安装即可

4.2 demo工程

# import sys
# sys.path.append("./")
from ultralytics import YOLO
# import onnxruntime as ort
import cv2
import os
import globdef demo():### predict===================================# 加载模型test_path = "https://ultralytics.com/images/bus.jpg"outpath = os.path.join(os.getcwd(), "runs/detect")# model = YOLO("yolov8n.yaml")  # 从头开始构建新模型model = YOLO("yolov8n.pt")  # 加载预训练模型(推荐用于训练)# Use the modelresults = model.train(data="coco128.yaml", epochs=3)  # 训练模型results = model.val()  # 在验证集上评估模型性能results = model(test_path)  # 预测图像results = model.predict(test_path, device=0,save=True,show=False,save_txt=True, imgsz=[640,640],save_conf=True, name=outpath, iou=0.5)  ## 预测图像 ## 这里的imgsz为高宽success = model.export(format="onnx")  # 将模型导出为 ONNX 格式demo()

可能报错:运行上述脚本,报错如下,原因是显卡驱动和cuda版本不匹配。
在这里插入图片描述
提高显卡驱动版本或降低pytorch版本即可。这里方便起见,降低pytorch版本与显卡驱动匹配即可。
此时pytorch版本为:torch2.3.0,torchvision0.18.0。重新安装版本torch2.1.1,torchvision0.16.1。


4.3 自己的工程训练

# import sys
# sys.path.append("./")
from ultralytics import YOLO
# import onnxruntime as ort
import cv2
import os
import globdef export_own():model_file = "./yolov8n.pt",print(model_file)model = YOLO(model_file)  # load a pretrained model (recommended for training)pt_path = model.model.pt_pathuse_model = os.path.basename(pt_path)## 通过修改pt_path,从而直接修改转换的onnx的名字,就可以导出不同输入尺寸的onnx模型# model.model.pt_path = pt_path.replace(use_model, f"{use_model[:-3]}_export{use_model[-3:]}")model.export(format='onnx', opset=11, simplify=True, dynamic=False, imgsz=[352,352])def train_own():model_path = "yolov8s.pt"# model_path = os.path.join(os.getcwd(), "runs/detect/yolov8_case23_epoch300/weights/epoch250.pt")savename = os.path.join(os.getcwd(), "runs/detect/yolov8_case24_epoch300")model = YOLO(model_path)  model.train(data="./dataYaml/Object_case19.yaml", device="4,5,6,7", imgsz=352, close_mosaic=50, epochs=300, batch=512, workers=16, save_period=10, name=savename, patience=300,# resume=True ## 是否要继续训练)  if __name__=="__main__":train_own()export_own()

5 端侧模型转换

5.1 RK3566模型转换

rknn-toolkit2-v1.4的环境配置


5.2 SIM9383模型转换

SIM9383 的环境配置

相关文章:

【yolov8系列】ubuntu上yolov8的开启训练的简单记录

前言 yolov8的广泛使用,拉取yolov8源码工程,然后配置环境后直接运行,初步验证自己数据的检测效果,在数据集准备OK的情况下 需要信手拈来,以保证开发过程的高效进行。 本篇博客更注意为了方便自己使用时参考。顺便也记录…...

Scala学习笔记15: 文件和正则表达式

目录 第十五章 文件和正则表达式1- 读取行2- 从URL或者其它源读取3- 写入文本文件4- 序列化5- 正则表达式6- 正则表达式验证输入数据格式end 第十五章 文件和正则表达式 1- 读取行 在Scala中读取文件中的行可以通过不同的方法实现 ; 一种常见的方法是使用 scala.io.Source 对…...

外卖员面试现状

说明: 以下身份角色用符号代替 # 面试官 $ 求职者 # 看了您的简历你有两年半的送外卖经验,可以简单说一下您平时是怎么送外卖的吗? $ 我首先在平台接单然后到店里取餐,取到餐后到顾客留下的地址,再通知顾客取餐 # 你们也用电动…...

异步加载与动态加载

异步加载和动态加载在概念上有相似之处,但并不完全等同。 异步加载(Asynchronous Loading)通常指的是不阻塞后续代码执行或页面渲染的数据或资源加载方式。在Web开发中,异步加载常用于从服务器获取数据,而不需要用户等…...

MUNIK解读ISO26262--什么是DFA

我们在学习功能安全过程中,经常会听到很多安全分析方法,有我们熟知的FMEA(Failure Modes Effects Analysis)和FTA(Fault Tree Analysis)还有功能安全产品设计中几乎绕不开的FMEDA(Failure Modes Effects and Diagnostic Analysis),相比于它们…...

启动spring boot项目停止 提示80端口已经被占用

可能的情况: 检查并结束占用进程: 首先,你需要确定哪个进程正在使用80端口。在Windows上,可以通过命令行输入netstat -ano | findstr LISTENING | findstr :80来查看80端口的PID,然后在任务管理器中结束该进程。在...

SOLIDWORKS分期许可(订阅形式),降低前期的投入成本!

SOLIDWORKS 分期许可使您能够降低前期软件成本,同时提供对 SOLIDWORKS 新版本和升级程序的即时访问,以及在每个期限结束时调整产品的灵活性,帮助您跟上市场需求和竞争压力的步伐。 目 录: ★ 1 什么是SOLIDWORKS分期许可 ★ 2 …...

详细分析Spring Boot 数据源配置的基本知识(附配置)

目录 前言1. 基本知识2. 模版3. 实战经验前言 对于Java的基本知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新)1. 基本知识 包括数据源的概念、连接池的作用、多数据源的实现与管理、Druid 连接池…...

海思SD3403/SS928V100开发(15)9轴IMU ICM-20948模块SPI接口调试

1.前言 芯片平台: 海思SD3403/SS928V100 操作系统平台: Ubuntu20.04.05【自己移植】 9轴IMU模块:ICM-20948 通讯接口: SPI 模块datasheet手册: https://download.csdn.net/download/jzwjzw19900922/89517096 2. 调试记录 2.1 pinmux配置 #spi0 bspmm 0x0102F01D8 …...

大力出奇迹:大语言模型的崛起与挑战

随着人工智能(AI)技术的迅猛发展,特别是在自然语言处理(NLP)领域,大语言模型(LLM)的出现与应用,彻底改变了我们与机器互动的方式。本文将探讨ChatGPT等大语言模型的定义、…...

【算法 - 哈希表】两数之和

这里写自定义目录标题 两数之和题目解析思路解法一 :暴力枚举 依次遍历解法二 :使用哈希表来做优化 核心逻辑为什么之前的暴力枚举策略不太好用了?所以,这就是 这道题选择 固定一个数,再与其前面的数逐一对比完后&…...

【深度学习】图形模型基础(5):线性回归模型第一部分:认识线性回归模型

1. 回归模型定义 最简单的回归模型是具有单一预测变量的线性模型,其基本形式如下: y a b x ϵ y a bx \epsilon yabxϵ 其中, a a a 和 b b b 被称为模型的系数或更一般地,模型的参数。 ϵ \epsilon ϵ 代表误差项&#…...

2024 年第十四届 APMCM 亚太地区大学生数学建模竞赛B题超详细解题思路+数据预处理问题一代码分享

B题 洪水灾害的数据分析与预测 亚太中文赛事本次报名队伍约3000队,竞赛规模体量大致相当于2024年认证杯,1/3个妈杯,1/10个国赛。赛题难度大致相当于0.6个国赛,0.8个妈杯。该比例仅供大家参考。 本次竞赛赛题难度A:B:C3:1:4&…...

Yarn有哪些功能特点

Yarn是一个由Facebook团队开发,并联合Google、Exponent和Tilde等公司推出的JavaScript包管理工具,旨在提供更优的包管理体验,解决npm(Node Package Manager)的一些痛点。Yarn的功能特点主要包括以下几个方面&#xff1…...

深度学习算法bert

bert 属于自监督学习的一种(输入x的部分作为label) 1. bert是 transformer 中的 encoder ,不同的bert在encoder层数、注意力头数、隐藏单元数不同 2. 假设我们有一个模型 m ,首先我们为某种任务使用大规模的语料库预训练模型 m …...

PyTorch - 神经网络基础

神经网络的主要原理包括一组基本元素,即人工神经元或感知器。它包括几个基本输入,例如 x1、x2… xn ,如果总和大于激活电位,则会产生二进制输出。 样本神经元的示意图如下所述。 产生的输出可以被认为是具有激活电位或偏差的加权…...

docker-compose搭建minio对象存储服务器

docker-compose搭建minio对象存储服务器 最近想使用oss对象存储进行用户图片上传的管理,了解了一下例如aliyun或者腾讯云的oss对象存储服务,但是呢涉及到对象存储以及经费有限的缘故,决定自己手动搭建一个oss对象存储服务器; 首先…...

vue3使用pinia中的actions,需要调用接口的话

actions,需要调用接口的话,假如页面想要调用actions中的方法获取数据, 必须使用try catch async await 进行包裹,详情看下面代码 import {defineStore} from pinia import {reqCode,reqUserLogin} from ../../api/hospital/i…...

Python酷库之旅-第三方库Pandas(003)

目录 一、用法精讲 4、pandas.read_csv函数 4-1、语法 4-2、参数 4-3、功能 4-4、返回值 4-5、说明 4-6、用法 4-6-1、创建csv文件 4-6-2、代码示例 4-6-3、结果输出 二、推荐阅读 1、Python筑基之旅 2、Python函数之旅 3、Python算法之旅 4、Python魔法之旅 …...

社交电商中的裂变营销利器,二级分销模式,美妆家具成功案例分享

二级分销返佣模式是一种帮助商家迅速扩大市场覆盖的有效营销策略,不仅能降低营销成本,还能提升品牌知名度。下面通过两个具体的案例来说明这种模式的好处和优势。 某知名美妆品牌在市场竞争日益激烈的情况下,决定采用二级分销返佣模式进行市场…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...