【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 的环境配置

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

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

相关文章

每日一题——力扣144. 二叉树的前序遍历(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法: 代码结构 时间复杂度 空间复杂度 总结 我要更强 代码说明 …

C语言力扣刷题7——删除排序链表中的重复元素 II——[快慢双指针法]

力扣刷题7——删除排序链表中的重复元素 II——[快慢双指针法] 一、博客声明二、题目描述三、解题思路1、思路说明 四、解题代码(附注释) 一、博客声明 找工作逃不过刷题,为了更好的督促自己学习以及理解力扣大佬们的解题思路,开辟…

好书安利 | LangChain入门指南:构建高可复用、可扩展的LLM应用程序(送PDF)轻松入门LangChain

《LangChain入门指南》 LangChain作为大模型集成框架鼎鼎大名,这本《LangChain入门指南》是一本很及时的书,值得推荐~ 01 为什么需要LangChain 首先想象一个开发者在构建一个LLM应用时的常见场景。 当你开始构建一个新项目时,…

不使用canvs也能创建出点状背景

div{ height: 100%; touch-action: none; background: radial-gradient(circle, #e6e6e6 1px, transparent 1px); /* 创建一个点状背景 */ background-size: 15px 15px; /* 控制点的大小和间距 */ padding: 20px; /* 添加内边距使内容不靠边 */ position: relative; /* 让内部内…

树形DP——AcWing 323. 战略游戏

树形DP 定义 树形动态规划(Tree Dynamic Programming,简称树形DP)是一种在树形结构上应用动态规划算法的技术。它利用树的递归结构,通过定义状态和状态转移方程,来求解与树相关的最优化问题,如树上的最长…

不使用cmake,如何在vs2019对cpp项目进行文件夹分类?

不使用cmake,如何在vs2019对cpp项目进行文件夹分类? 1.不使用cmake的根目录指的是哪里?2.什么时候进行项目管理?3.应该分成什么样的文件夹?4.如何分类? 1.不使用cmake的根目录指的是哪里? 查看项…

最新AI智能聊天对话问答系统源码(图文搭建部署教程)+AI绘画,文生图,TTS语音识别输入,文档分析

一、人工智能语言模型和AI绘画在多个领域广泛应用 人工智能语言模型和AI绘画在多个领域都有广泛的应用。以下是一些它们的主要用处: 人工智能语言模型 内容生成 写作辅助:帮助撰写文章、博客、报告、剧本等。 代码生成:自动生成或补全代码&…

sudo: /etc/init.d/ssh: command not found

在 WSL 中尝试启动 SSH 服务时遇到 sudo: /etc/init.d/ssh: command not found 错误 安装 OpenSSH 服务器 更新软件包列表 sudo apt update安装 OpenSSH 服务器 sudo apt install openssh-server启动 SSH 服务 在 WSL 2 上,服务管理与传统 Linux 系统有所不同。你可以手动启动…

C++之STL(十)

1、适配器 2、函数适配器 #include <iostream> using namespace std;#include <algorithm> #include <vector> #include <functional>bool isOdd(int n) {return n % 2 1; } int main() {int a[] {1, 2, 3, 4, 5};vector <int> v(a, a 5);cou…

ONLYOFFICE 8.1版本桌面编辑器测评:重塑办公效率的巅峰之作

在数字化办公日益普及的今天&#xff0c;一款高效、便捷且功能强大的桌面编辑器成为了职场人士不可或缺的工具。ONLYOFFICE 8.1版本桌面编辑器凭借其卓越的性能和丰富的功能&#xff0c;成功吸引了众多用户的目光。今天&#xff0c;我们将对ONLYOFFICE 8.1版本桌面编辑器进行全…

使用el-amap-info-window遇到的问题

使用的这个库https://github.com/yangyanggu/vue-amap 想要滚动amapInfoWindow里的内容&#xff0c;但不触发地图缩放 默认滚动amapInfoWindow里的内容&#xff0c;会触发地图缩放。看了C站一个大佬的文章解决了。 amapInfoWindow会自动滚动到顶部 我的amapInfoWindow里面用了…

【智能制造-4】机器人控制器

机器人控制器中分哪几个模块&#xff1f; 机器人控制器通常由以下几个主要模块组成: 运动控制模块: 负责机器人各轴电机的位置、速度、加速度等控制 实现机器人末端执行器的精确定位和运动控制传感器接口模块: 负责机器人各种传感器信号的采集和处理 为运动控制、环境感知等提…

Python-正则表达式

目录 一、打开正则表达式 二、正则表达式的使用 1、限定符 &#xff08;1&#xff09;x*&#xff1a;*表示它前面的字符y 可以有0个或多个&#xff1b; &#xff08;2&#xff09;x&#xff1a;表示它前面的字符可以出现一次以上&#xff1b;&#xff08;只可以匹配多次&…

2024年6月大众点评深圳餐饮店铺POI分析18万家

2024年6月大众点评深圳餐饮店铺POI共有178720家 店铺POI点位示例&#xff1a; 店铺id G9TSD2JvdLtA7fdm 店铺名称 江味龙虾馆(南山店) 十分制服务评分 8.8 十分制环境评分 8.8 十分制划算评分 8.6 人均价格 128 评价数量 12840 店铺地址 南山大道与桂庙路交叉口西北角…

RAG开发中常见的12个痛点及解决方案

受到 Barnett 等人论文《构建检索增强生成系统的七大挑战》启发&#xff0c;本文将探讨论文中提及的七大挑战及在开发 RAG&#xff08;检索增强生成&#xff09;流程中常遇到的五个额外难题。更为重要的是&#xff0c;我们将深入讨论解决这些 RAG 难题的策略&#xff0c;以便我…

使用 WebGL 创建 3D 对象

WebGL Demohttps://mdn.github.io/dom-examples/webgl-examples/tutorial/sample5/index.html 现在让我们给之前的正方形添加五个面从而可以创建一个三维的立方体。最简单的方式就是通过调用方法 gl.drawElements() 使用顶点数组列表来替换之前的通过方法gl.drawArrays() 直接…

检测SD NAND文件系统异常和修复的方法

目录 1、打开命令提示符&#xff1a; 2、运行chkdsk命令&#xff1a; 3、命令参数说明&#xff1a; chkdsk是Windows中的一个命令行工具&#xff0c;用于检查磁盘上的文件系统错误和修复坏块。MK米客方德为您提供指导&#xff0c;以下是使用chkdsk的步骤&#xff1a; 1、打开…

综合IT运维管理解决方案

综合IT运维管理解决方案 在信息化和数字化高速发展的时代&#xff0c;企业的IT运维管理已经成为保障业务连续性和提升运营效率的关键环节。高效的IT运维管理不仅能够降低运维成本&#xff0c;还能提升服务质量和用户满意度。本文将详细介绍综合IT运维管理解决方案&#xff0c;…

eBPF技术揭秘:DeepFlow如何引领故障排查,提升运维效率

DeepFlow 实战&#xff1a;eBPF 技术如何提升故障排查效率 目录 DeepFlow 实战&#xff1a;eBPF 技术如何提升故障排查效率 微服务架构系统中各个服务、组件及其相互关系的全景 零侵扰分布式追踪&#xff08;Distributed Tracing&#xff09;的架构和工作流程 关于零侵扰持…

华为od 2024 | 什么是华为od,od 薪资待遇,od机试题清单

目录 专栏导读华为OD机试算法题太多了&#xff0c;知识点繁杂&#xff0c;如何刷题更有效率呢&#xff1f; 一、逻辑分析二、数据结构1、线性表① 数组② 双指针 2、map与list3、队列4、链表5、栈6、滑动窗口7、二叉树8、并查集9、矩阵 三、算法1、基础算法① 贪心思维② 二分查…