【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*.sh
	1 按 enter 键
	2 输入yes并enter
	3 选择路径:enter
	4 是否添加环境变量: yes
	5 是否安装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 glob

def 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 model
    results = 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 glob

def 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_path
    use_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 的环境配置

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

万物皆可爬——亮数据代理IP+Python爬虫批量下载百度图片助力AI训练

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【导航大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

AI小白使用Macbook Pro安装llama3与langchain初体验

1. 背景 AI爆火了2年有余,但我仍是一个AI小白,最近零星在学,随手记录点内容供自己复习。 上次在Macbook Pro上安装了Stable Diffusion,体验了本地所心所欲地生成各种心仪的图片,完全没有任何限制的惬意。今天想使用M…

从@Param注解开始,深入了解 MyBatis 参数映射的原理

系列文章目录 MyBatis缓存原理 Mybatis plugin 的使用及原理 MyBatisSpringboot 启动到SQL执行全流程 数据库操作不再困难,MyBatis动态Sql标签解析 Mybatis的CachingExecutor与二级缓存 使用MybatisPlus还是MyBaits ,开发者应该如何选择? 巧…

解决所有终端中文输出乱码的问题

一、系统自带的cmd.exe 以及 Git的bash.exe、sh.exe、git-bash.exe和git-cmd.exe,和PowerShell默认使用“当前系统区域设置”设定好的936 (ANSI/OEM - 简体中文 GBK)语言编码。 1、[当前代码页] 的936 (ANSI/OEM - 简体中文 GBK) 是导致中文乱码的原因 在控制面板→…

【基于深度学习方法的激光雷达点云配准系列之GeoTransformer】——模型部分浅析(1)

【GeoTransformer系列】——模型部分 1. create_model2. model的本质3. 模型的主要结构3.1 backbone3.2 transformer本篇继续对GeoTransformer/experiments/geotransformer.kitti.stage5.gse.k3.max.oacl.stage2.sinkhorn/下面的trainval.py进行详细的解读,主要是模型部分, 可以…

单位转换:将kb转换为 MB ,GB等形式

写法一&#xff1a; function formatSizeUnits(kb) {let units [KB, MB, GB, TB, PB,EB,ZB,YB];let unitIndex 0;while (kb > 1024 && unitIndex < units.length - 1) {kb / 1024;unitIndex;}return ${kb.toFixed(2)} ${units[unitIndex]}; } console.log(for…

linux 下配置docker mirrors

一、配置mirrors vi /etc/docker/daemon.json {"registry-mirrors": ["https://docker.blfrp.cn"],"log-opts": {"max-size": "10m","max-file": "3"} }#完成配置后重启docker systemctl restart dock…

SAP ALV 负号提前

FUNCTION CONVERSION_EXIT_ZSIGN_OUTPUT. *"---------------------------------------------------------------------- *"*"本地接口&#xff1a; *" IMPORTING *" REFERENCE(INPUT) *" EXPORTING *" REFERENCE(OUTPUT) *"…

labview排错

源代码正常跑&#xff0c;应用程序报这个错&#xff0c;是因为源代码的可以找到项目路径内所有dll的路径&#xff0c;而应用程序只能找到data文件夹的dll文件 解决查看源代码中.net的程序集的路径&#xff0c;复制对应的dll到data文件夹下

24V 350W开关电源电路原理图+PCB工程文件 UC3843AD lm193芯片

资料下载地址&#xff1a;24V 350W开关电源电路原理图PCB工程文件 UC3843AD lm193芯片 1、原理图 2、PCB

昇思25天学习打卡营第5天|数据变换Transforms

数据变换 Transforms 在完成数据加载后&#xff0c;还应该对数据进行预处理。之前在数据集篇介绍过map函数&#xff0c;这里的transform就是和map一起使用的。transform有针对图像、文本、音频等不同类型的&#xff0c;并且也支持lambda函数。 环境配置 import numpy as np …

Echarts地图实现:各省市计划录取人数

Echarts地图实现&#xff1a;各省市计划录取人数 实现功能 本文将介绍如何使用 ECharts 制作一个展示中国人民大学2017年各省市计划录取人数的地图。我们将实现以下图表形式&#xff1a; 地图&#xff1a;基础的地图展示&#xff0c;反映不同省市的录取人数。散点图&#xf…

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

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

【系统架构设计师】四、嵌入式基础知识(软件|软件设计|硬件|式总线逻辑)

目录 一、嵌入式软件 1.1 嵌入式软件分类 1.2 板级支持包(BSP) 1.3 BootLoader 1.4 设备驱动程序 二、嵌入式软件设计 2.1 编码 2.2 交叉编译 2.3 交叉调试 三、嵌入式系统硬件的分类 3.1 根据用途分类 3.2 存储器分类 四、内&#xff08;外&#xff09;总线逻辑 …

江科大笔记—FLASH闪存

FLASH闪存 程序现象&#xff1a; 1、读写内部FLASH 这个代码的目的&#xff0c;就是利用内部flash程序存储器的剩余空间&#xff0c;来存储一些掉电不丢失的参数。所以这里的程序是按下K1变换一下测试数据&#xff0c;然后存储到内部FLASH&#xff0c;按下K2把所有参数清0&…

力扣每日一题 6/23 字符串/模拟

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 520.检测大写字母【简单】 题目&#xff1a; 我们定义&#xff0c;在以下…

【web开发】chrome拦截localhost跨域请求原因

在设置中&#xff0c;默认屏蔽了&#xff0c;请求不会到localhost服务器 chrome://flags/#block-insecure-private-network-requests 设置disable即可

solidworks钣金工厂共享云桌面方案

随着信息技术的飞速发展和企业数字化转型的深入&#xff0c;传统的钣金工厂面临着诸多挑战&#xff0c;其中之一就是如何在保证数据安全的前提下&#xff0c;提高设计、生产和管理的效率。 SolidWorks是一款专业的三维3D设计软件&#xff0c;功能强悍&#xff0c;支持分布式数…

Word页眉横线怎么删除?5个方法,记得收藏!

在数字化办公日益普及的今天&#xff0c;Word文档成为了我们日常工作中不可或缺的一部分。然而&#xff0c;在编辑和排版Word文档时&#xff0c;我们有时会面临一些看似微小却令人头疼的问题&#xff0c;比如页眉中的横线。这条不起眼的横线&#xff0c;就像是在整洁的页面上划…

基于SpringBoot的藏区特产销售平台

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a; Java 数据库&#xff1a; MySQL 技术&#xff1a; SpringBoot框架 工具&#xff1a; MyEclipse 系统展示 首页 个人中心 特产信息管理 订单管…