【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.pswp.cn/diannao/36933.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/36933.shtml
英文地址,請注明出處:http://en.pswp.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)是一種在樹形結構上應用動態規劃算法的技術。它利用樹的遞歸結構,通過定義狀態和狀態轉移方程,來求解與樹相關的最優化問題,如樹上的最長…

10秒教會你mysql的連接

連接MySQL數據庫通常可以通過多種方法實現,以下是幾種常見的方法,我將按照您的要求以清晰、分點的方式歸納說明: 1. 使用MySQL命令行客戶端 打開終端或命令提示符:首先,打開您的計算機上的終端或命令提示符窗口。輸入…

CSS中的display屬性:布局控制的關鍵

CSS的display屬性是控制元素在頁面上如何顯示的核心屬性之一。它決定了元素的顯示類型,以及它在頁面布局中的行為。本文將詳細介紹display屬性的不同值及其使用場景,幫助你更好地掌握布局控制。 display屬性的基本值 block 特點:塊級元素&…

LeetCode每日一題 2734.子串操作后的字典序最小字符串|標志位遍歷字符數組

問題描述 📋 子串操作后的字典序最小字符串 給定一個僅包含小寫字母的字符串,你可以執行如下操作任意次: 選擇某個子串,將其中的每個字符都替換成其前一個字母(比如 ‘b’ 變成 ‘a’,‘c’ 變成 ‘b’&…

未來數據中心智能運維的趨勢

隨著信息技術的飛速發展,數據中心作為支撐企業信息化建設的核心樞紐,其運維管理的重要性日益凸顯。傳統的運維模式已難以滿足現代數據中心高效、安全、靈活的需求,而智能運維正成為行業發展的新趨勢。本文將結合運維行業的資料和團隊經驗&…

【JavaScript 小工具】——如何判斷當前頁面是否在微信瀏覽器中打開

要判斷用戶是否通過微信瀏覽器打開網頁,你可以檢查用戶代理(User Agent)字符串中是否包含微信瀏覽器的特定標識。微信瀏覽器通常會在User Agent中包含"MicroMessenger"這個關鍵詞。 以下是一段JavaScript代碼示例,用于…

不使用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;只可以匹配多次&…

電鍍用開關電源技術詳解

1 引言 在電鍍行業里&#xff0c;一般要求工作電源的輸出電壓較低&#xff0c;而電流很大。電源的功率要求也比較高&#xff0c;一般都是幾千瓦到幾十千瓦。目前&#xff0c;如此大功率的電鍍電源一般都采用晶閘管相控整流方式。其缺點是體積大、效率低、噪音高、功率因數低、…

[CocosCreator]CocosCreator網絡通信:https + websocket + protobuf

環境 cocos creator版本&#xff1a;3.8.0 開發語言&#xff1a;ts 操作系統&#xff1a;windows http部分 直接使用 XMLHttpRequest 創建http請求 // _getHttpUrl 方法自己寫字符串拼接public httpPostJsonRequest(uri: string, headData: any, data: any, cb: Function…