最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Jetson NX配置GPU版本pytorch的yolov8教程

2023-08-03 19:11 作者:不姓崔的依拓答辯  | 我要投稿

配環(huán)境配不出來?別苦著臉嘛,過來喝一杯吧。

????????如果你是初學(xué)者,請(qǐng)務(wù)必保證所有版本號(hào)和本文的一致!

本文寫于20238月,各部分版本號(hào)如下:

  • Ubuntu20.04

  • Jetpack5.1.1

  • Torch2.0.0+nv23.05

  • Torchvision0.15.1a0+42759b1

1.1 前言

????????前段時(shí)間做無人機(jī)集群目標(biāo)跟蹤的比賽,需要在5臺(tái)英偉達(dá)的jetson NX上都配置yolov8環(huán)境。我們首先配好了CPU版本的torch環(huán)境,雖然配環(huán)境十分輕松,但CPU版本torchyolov8運(yùn)行幀率只有1~2。

????????而在配置GPU版本torch的yolov8環(huán)境的過程非??部溃?jīng)過一番摸索,在5臺(tái)NX上都非常順暢地配置完成了yolov8環(huán)境的配置。故把踩過的坑在此記錄,分享給大家以供交流。

????????另外,我之前對(duì)jetpack,torchvision,pycuda,tensorRT等理解不是很清晰,很多時(shí)候配好了都不知道這東西是用來干啥的。對(duì)此,本文每配一個(gè)東西我也會(huì)說明其概念和作用

????????本篇教程不會(huì)把需要運(yùn)行的命令一條一條全部列出來,取而代之的是更多的文字描述與原理解讀。我自認(rèn)為邏輯非常清晰,讀者跟隨邏輯完全可以完成安裝,讀者只需要帶點(diǎn)腦子即可。也許很多讀者配環(huán)境的時(shí)候不看任何文字說明,把作者給出的指令逐行復(fù)制了事(我之前就是這樣)。這個(gè)習(xí)慣很不好。作者會(huì)在文字說明中陳述很多細(xì)節(jié),請(qǐng)認(rèn)真讀。

????????注意:如果你需要在NX上安裝rosros2,那么不要使用conda?。?!ros與conda的兼容性十分糟糕,親測ros2與conda兼容性更差,甚至連編譯都過不去。請(qǐng)?jiān)贜X原生python環(huán)境下安裝yolov8環(huán)境。


????????觀看本教程之前,最好滿足以下條件:

  1. 你的NX已經(jīng)安裝好了ubuntu20.04系統(tǒng)

  2. 熟悉一些基礎(chǔ)的linux命令

  3. 會(huì)python編程

  4. 了解torch的基本概念,在筆記本電腦上能夠完成torch的配環(huán)境工作(但對(duì)于如何在NX上完成環(huán)境配置比較頭疼)

  5. 有一個(gè)python3.8環(huán)境,最好是python3.8.10(ubuntu20.04默認(rèn)自帶python3.8)

  6. 安裝好了 git,pip等基礎(chǔ)工具

  7. 最好有一個(gè)梯子,可以連接到外網(wǎng)。

1.2 安裝Jetpack

????????Jetpack是專供英偉達(dá)的嵌入式計(jì)算平臺(tái)使用的人工智能包。這個(gè)官方定義現(xiàn)在理解起來有點(diǎn)抽象,咱們安裝好之后,大家就知道他是什么了。


????????首先,安裝jtop,這是一個(gè)監(jiān)控CPU,GPU等使用情況的工具。

????????然后,安裝JetPack:

????????安裝完JetPack后,命令行輸入jtop并運(yùn)行,即可看到當(dāng)前電腦的CPU運(yùn)行狀態(tài),按數(shù)字鍵可以切換頁面,切換到INFO頁面,可看到已經(jīng)安裝好的包:

jtop運(yùn)行后的INFO界面

????????可以發(fā)現(xiàn),當(dāng)前你的NX已經(jīng)安裝好了很多難裝的底層庫:Cuda,cuDNN TensorRT, OpenCV。這下可能你大致明白了咱們的定義:

Jetpack是英偉達(dá)提供的專門供他自己的嵌入式計(jì)算平臺(tái)使用的人工智能包。

????????這句話是什么意思了,意思就是Jetpack把人工智能開發(fā)常用的底層驅(qū)動(dòng)和庫一股腦給你打包好,你安裝了Jetpack,就把這幾樣?xùn)|西都安裝上去了。

?

????????注意:上圖opencv的版本后有“with CUDA NO”的字樣,說明opencv也有支持GPU加速的版本,但是默認(rèn)安裝的opencv不支持GPU加速(pip也只能安裝cpu版本的opencv)。由于作者的項(xiàng)目不涉及太多的opencv操作,配置GPU版本的opencv對(duì)整體性能影響不大,所以作者沒有深入研究,如果需要安裝支持GPU加速的opencv,需要將原opencv卸載,并通過源碼編譯安裝,在cmake階段指定相應(yīng)cuda配置,即可編譯出支持cuda加速的opencv。讀者可自行百度解決。

?

????????后文不會(huì)再提及cuda,cudnn,opencv的安裝。


1.3 安裝torch

????????torch應(yīng)該不需要介紹了,為了方便,一般大家都把pytorch直接叫做torch,初學(xué)者看見不要覺得奇怪就行。

????????安裝torch,參考官方鏈接,所有命令均參考官網(wǎng)的即可。

Installing PyTorch for Jetson Platform - NVIDIA Docs

https://docs.nvidia.com/deeplearning/frameworks/install-pytorch-jetson-platform/index.html


????????官網(wǎng)中需要運(yùn)行的指令都在這個(gè)圖片里,請(qǐng)自行前往官網(wǎng)復(fù)制。再往后的指令就不用管了。

????????注意中間的兩個(gè) “export TOUCH_INSTALL=.......”?只運(yùn)行上面這個(gè)https:// 的就行,仔細(xì)看兩眼英文敘述都能懂。

英偉達(dá)官網(wǎng)在NX上安裝pytorch的步驟

????????大致流程解讀:

  1. sudo apt安裝一堆依賴庫

  2. export TORCH_INSTALL=……… 聲明下載torch安裝包的網(wǎng)址。

  3. pip安裝指定版本的aiohttp numpy scipy等庫。

  4. export一個(gè)別的什么庫,具體是什么不用管。

  5. pip 安裝 protobuf,這個(gè)照著做就行,沒遇見什么問題。

  6. 最后,使用pip安裝torch。其中命令中的$TORCH_INSTALL就是你之前export的那個(gè)。

  7. 然后應(yīng)該torch就安裝成功了。

1.4 安裝torchvision

????????torchvisiontorch的一部分,可以理解為用torch實(shí)現(xiàn)了一份常用的基礎(chǔ)的網(wǎng)絡(luò)框架和工具類,你拿來就能用,不用自己寫了。每個(gè)版本的torch都會(huì)有自己對(duì)應(yīng)版本的torchvision,一般裝錯(cuò)版本就意味著不好使。torchvision 版本對(duì)應(yīng)關(guān)系如下:

torch與torchvision的版本對(duì)應(yīng)關(guān)系

????????通過pip安裝的torchvision只是CPU版本的,版本只顯示0.15.1。這個(gè)是無法調(diào)用jetson底層的cuda加速的。GPU版本的torchvision只能通過編譯進(jìn)行安裝。編譯安裝的torch版本號(hào)顯示為“0.15.1a0+42759b1”(“版本號(hào)+巴拉巴拉一堆數(shù)”),說明你安裝的是支持jetson上的cuda加速的。

????????下載torchvision源碼并構(gòu)建安裝的方法如下:

? ? ????親測NX很可能編譯了一半就內(nèi)存爆了然后卡死,可重復(fù)運(yùn)行安裝腳本,卡死之前的安裝進(jìn)度會(huì)被保留,多運(yùn)行幾次就可以安裝成功了。

????????最后在命令行進(jìn)入python,檢測是否安裝成功:

????????torch.__version__torchvision.__version__均會(huì)輸出“版本號(hào)+巴拉巴拉一堆數(shù)”,如下圖所示,這就說明你安裝gpu版本的torchtorchvision成功了如果你是初學(xué)者,請(qǐng)務(wù)必保證所有版本號(hào)和本文的一致。

在命令行中檢測torch和torchvision安裝情況(拍屏帶師)

1.5 安裝pyCUDA

????????pyCUDA是一個(gè)python庫,讓訪問 NVIDIA CUDA 并行計(jì)算API更容易。我的理解是:如果你是初學(xué)者,只是使用yolov8做基礎(chǔ)的訓(xùn)練和預(yù)測,是不需要管python如何訪問cuda的,這些東西torch都幫你做好了。而如果你使用torch實(shí)現(xiàn)自己的網(wǎng)絡(luò)架構(gòu),或者需要使用到tensorRT做加速,可能需要用到pyCUDA庫做一些底層的操作??傊瑢?duì)于初學(xué)者,不太需要關(guān)心這個(gè)庫。本文一并安裝,有備無患。

注:沒梯子的加清華源:【-i https://pypi.tuna.tsinghua.edu.cn/simple


????????說到tensorRT加速,其運(yùn)行速度比GPU版本的torch又快了一個(gè)數(shù)量級(jí),但是水很深,建議新手不要嘗試。CSDN上的文章寫的亂七八糟的,我研究兩天連個(gè)demo都沒跑通,對(duì)于新手來說,GPU版本的torch幀率一般已經(jīng)夠高了(20Hz左右)。

如果有想法,推薦跟著深藍(lán)學(xué)院的這個(gè)教程學(xué)上一個(gè)月:

https://www.shenlanxueyuan.com/course/624?source=1


1.6 安裝yolov8

????????onnx也是python的一個(gè)庫,可以將torch的網(wǎng)絡(luò)模型打包成一種通用的網(wǎng)絡(luò)模型格式,方便其他神經(jīng)網(wǎng)絡(luò)框架直接調(diào)用網(wǎng)絡(luò)模型和網(wǎng)絡(luò)參數(shù)進(jìn)行forward前向預(yù)測。

????????ultralytics庫就是yolov8的庫了,ultralytics是發(fā)布yolov8的公司的名字。

注:沒梯子的加清華源:【-i https://pypi.tuna.tsinghua.edu.cn/simple

1.7 巨坑,重點(diǎn)?。?!

????????安裝完?ultralytics?之后,pip?會(huì)報(bào)錯(cuò):pandas?和?matplotlib?要求的?numpy?版本過高,如下圖:

???????注意,這是個(gè)大坑,如果不處理好numpy版本問題,可能即使torchtorchvision的版本完全正確,yolo運(yùn)行還是會(huì)報(bào)錯(cuò)。而解決這個(gè)問題之后,一般就好使了。?此時(shí)把他們都卸了即可:

? ? ? ? 當(dāng)然,如果你有別的需求真的需要用到這兩個(gè)庫,你可以重新裝一下這兩個(gè)庫的較低版本,具體版本要求可參考githubultralytics官方倉庫的pip依賴文件:?

https://github.com/ultralytics/ultralytics/blob/main/requirements.txt

yolov8官方倉庫的requirements.txt中對(duì)這兩個(gè)庫的版本要求

1.8 最終測試

????????隨便寫了個(gè)代碼測試一下。

????????你需要準(zhǔn)備一個(gè)yolov8的模型文件(.pt 文件),點(diǎn)擊以下鏈接下載,下載后和代碼放入同一文件夾下。

https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt

????????還需要準(zhǔn)備一個(gè)測試視頻,這個(gè)自己夏姬八準(zhǔn)備一下就行了,也和代碼放入同一文件夾下。

????????最后這個(gè)文件夾下應(yīng)該有這三個(gè)東西:

需要放在同一文件夾下的三個(gè)文件

Yolo,啟動(dòng)

????????親測在NX上運(yùn)行,網(wǎng)絡(luò)預(yù)測一幀只需要20~30ms左右,由于USB攝像頭讀取也需要一定的時(shí)間,最終幀率可以達(dá)到10~20Hz,滿足要求,贏!

????????可惜最后比賽輸了,輸麻了。

——sytnocui 2023/8/3


?



Jetson NX配置GPU版本pytorch的yolov8教程的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
斗六市| 宜丰县| 资阳市| 全州县| 长顺县| 杨浦区| 诸城市| 浮梁县| 崇义县| 平远县| 盐津县| 惠东县| 胶南市| 嫩江县| 河北区| 界首市| 巨鹿县| 平和县| 正镶白旗| 固镇县| 永济市| 疏附县| 昭觉县| 濮阳县| 集安市| 离岛区| 茂名市| 巴彦县| 弥勒县| 连云港市| 迁安市| 东兰县| 颍上县| 花垣县| SHOW| 胶州市| 潜江市| 增城市| 手游| 沾化县| 安宁市|