色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

從頭創(chuàng)建Jetson的容器

NVIDIA英偉達(dá)企業(yè)解決方案 ? 來(lái)源:NVIDIA英偉達(dá)企業(yè)解決方案 ? 作者:NVIDIA英偉達(dá)企業(yè)解 ? 2022-09-07 09:59 ? 次閱讀

使用 Docker 容器的最大好處就是 “獨(dú)立性強(qiáng)”,在前面文章中我們教大家如何使用 NVIDIA 在 NGC 提供創(chuàng)建好的 l4t-ml 系列鏡像為基礎(chǔ),去創(chuàng)建各種機(jī)器學(xué)習(xí) / 深度學(xué)習(xí)的開(kāi)發(fā)或部署用途的獨(dú)立容器,包括各種基于 TensorRT 的推理應(yīng)用、基于 PyTorch 的各種 YOLO 相關(guān)應(yīng)用等等。

但是 l4t-ml 容器內(nèi)將大部分深度學(xué)習(xí)所需要的工具全部涵蓋進(jìn)去,使得這個(gè)容器鏡像變得十分龐大,例如配合 JetPack 5.0 DP 版本的 nvcr.io/nvidia/l4t-ml:r34.1.1-py3 鏡像需要占用 16.2G 空間,這對(duì)大部分存儲(chǔ)空間較為緊湊的 Jetson 邊緣設(shè)備來(lái)說(shuō)是個(gè)不小的負(fù)擔(dān),需要進(jìn)一步的優(yōu)化。

熟悉 Docker 創(chuàng)建容器的人都知道,只要使用 “docker build -f DOCKERFILE” 方式就能創(chuàng)建容器,不過(guò) Dockerfile 內(nèi)容是有復(fù)雜度的,至少包含以下兩大部分:

  • 基礎(chǔ)鏡像

這是相對(duì)神奇的環(huán)節(jié),我們至少得先在一個(gè)“以操作系統(tǒng)為基礎(chǔ)”的基礎(chǔ)鏡像文件之上去創(chuàng)建新的容器,不過(guò)還好操作系統(tǒng)源頭都會(huì)提供這些基礎(chǔ)鏡像,只要我們能找到這些基礎(chǔ)鏡像的發(fā)行位置,就能在 Dockerfile 一開(kāi)始使用 “FROM” 指令進(jìn)行導(dǎo)入。

在 Jetson 設(shè)備上使用的 L4T(Linxun for Tegra)版本 Ubuntu 操作系統(tǒng)是由 NVIDIA 所維護(hù),因此操作系統(tǒng)基礎(chǔ)鏡像也由 NVIDIA 所提供,并且存放在 NGC 云中心提供下載,可以在https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-base/tags 上找到詳細(xì)的內(nèi)容與下載的指令。

l4t-base 容器內(nèi)只有最基礎(chǔ)的操作系統(tǒng)、驅(qū)動(dòng)與 Python 開(kāi)發(fā)環(huán)境,并未安裝 CUDA、cuDNN 或 TensorRT 等開(kāi)發(fā)庫(kù),L4T 版本與 JetPack 版本是對(duì)應(yīng)的,請(qǐng)參考下表:

d249d69e-2ded-11ed-ba43-dac502259ad0.png

如果要使用 l4t-base 鏡像為基礎(chǔ),去創(chuàng)建與深度學(xué)習(xí)相關(guān)應(yīng)用的鏡像文件,就需要自行在 Dockerfile 內(nèi)加入 CUDA / cuDNN / TensorRT 以及其他所需要的依賴(lài)庫(kù)與軟件的安裝步驟,以下整理出不同 JetPack 版本所對(duì)應(yīng)的 CUDA / cuDNN / TensorRT / OpenCV 的版本,提供讀者在創(chuàng)建相關(guān)鏡像時(shí)候可以參考:

d25ab8ba-2ded-11ed-ba43-dac502259ad0.png

從上面簡(jiǎn)表可以看出,在 JetPack 4.4 至 4.6 版本的操作系統(tǒng)都是 Ubuntu 18.04、CUDA 版本都是 10.2、Python3 的版本都是 3.6、OpenCV 版本都是 4.1.1,至于 cuDNN 與 TensoRT 則有些微的差異,基本上鏡像文件的兼容性比較高。不過(guò)到了 JetPack 5.0 之后,操作系統(tǒng)升級(jí)至 Ubuntu 20.04 版之后,包括 Python、OpenCV、CUDA 版本的變化就比較大,與 JetPack 4.x 版本的鏡像

基礎(chǔ)容器的版本編號(hào)是對(duì)應(yīng) L4T 版本號(hào),如下圖:

d270eb08-2ded-11ed-ba43-dac502259ad0.png

因此要?jiǎng)?chuàng)建 Jetson 容器的首要工作,就是先確認(rèn)系統(tǒng)的 L4T 版本,然后再挑選合適的基礎(chǔ)鏡像來(lái)進(jìn)行創(chuàng)建的任務(wù)。

  • 添加所需軟件的安裝步驟與其他細(xì)節(jié):

這部分就是將平常安裝軟件的正確步驟加入 Dockerfile,使用 “RUN” 指令來(lái)執(zhí)行所有安裝內(nèi)容,為了要讓容器結(jié)構(gòu)更加簡(jiǎn)化,通常會(huì)將所有需要的依賴(lài)庫(kù)全部放在一個(gè) “RUN” 指令里操作,因此創(chuàng)建者需要先收集并確認(rèn)所需要的內(nèi)容。

由于創(chuàng)建的容器會(huì)以 root 用戶(hù)進(jìn)行操作,因此過(guò)程都不需要用 “sudo” 去取得權(quán)限,可以直接使用 apt-get、pip 或 dpkg 等安裝方式,有些需要預(yù)先下載的 .deb、.whl 或壓縮文件,在使用過(guò)后最好刪除以減少空間的占用。

這部分的細(xì)節(jié)內(nèi)容相當(dāng)繁瑣,需要比較多的執(zhí)行經(jīng)驗(yàn)與整理過(guò)程,對(duì)初學(xué)者來(lái)說(shuō)難度較大,因此本文特別挑選 NVIDIA 高級(jí)工程師所維護(hù)的 jetson-container 開(kāi)源項(xiàng)目,針對(duì)在 Jetson 設(shè)備上創(chuàng)建深度學(xué)習(xí)與 ROS 兩大類(lèi)應(yīng)用,提供各種對(duì)應(yīng)的 Dockerfile 參考內(nèi)容,包括安裝 CUDA、cuDNN、TensorRT、OpenCV、PyTorch、TensorFlow 以及 ROS 相關(guān)環(huán)境的細(xì)節(jié),讀者可以參考這些內(nèi)容再進(jìn)行調(diào)整。

接下來(lái)就是下載 jetson-container 項(xiàng)目,并且以創(chuàng)建 l4t-ml 容為示范來(lái)進(jìn)行講解其操作的重點(diǎn),讀者只要比照相同的邏輯進(jìn)行調(diào)整與修改,就能輕松地創(chuàng)建自己的應(yīng)用與開(kāi)發(fā)用途的容器鏡像。

1、下載開(kāi)源項(xiàng)目

項(xiàng)目開(kāi)源倉(cāng)位置在 https://github.com/dusty-nv/jetson-containers,請(qǐng)執(zhí)行以下指令下載到Jetson 設(shè)備上:

gitclonehttps://github.com/dusty-nv/jetson-containerscdjetson-containers

項(xiàng)目倉(cāng)的內(nèi)容總共有將近 60 個(gè)文件,主要分為以下三大類(lèi):

  • 在主目錄下有 12 個(gè)以 “Dockerfile.xxx” 格式命名的文件,作為創(chuàng)建各種容器所需要的配置文件;

  • 在 scripts 目錄下有 16 個(gè)創(chuàng)建容器與確認(rèn)各項(xiàng)相關(guān)軟件版本的 .sh 腳本文件;

  • 在 test 目錄下有 21 個(gè)測(cè)試用的 Python 代碼。

接下來(lái)分析執(zhí)行的重點(diǎn)。

2、分析創(chuàng)建容器的腳本

這個(gè)項(xiàng)目主要提供深度學(xué)習(xí)與 ROS 兩大應(yīng)用類(lèi)別的容器創(chuàng)建資源,真正的使用入口就是 scripts 目錄下的 docker_build_ml.shdocker_build_ros.sh 這兩個(gè)腳本,其余腳本多是輔助用途的,用來(lái)協(xié)助判斷相關(guān)軟件版本,然后甚至對(duì)應(yīng)變量給執(zhí)行腳本進(jìn)行完整的鏡像創(chuàng)建步驟。

現(xiàn)在以 docker_build_ml.sh 為例來(lái)進(jìn)行說(shuō)明,后面可以加上 all、TensorFlow 或 PyTorch 等機(jī)器學(xué)習(xí)框架選項(xiàng),現(xiàn)在來(lái)看看腳本的主要內(nèi)容:

(1)確認(rèn)基礎(chǔ)鏡像版本:

前面說(shuō)過(guò),創(chuàng)建 Docker 鏡像的首要任務(wù)就是要確認(rèn) L4T 版本,然后指定 NGC 中合適的基礎(chǔ)鏡像版本,作為 Dockerfile 中第一個(gè) “FROM”參數(shù),在 “docker build” 過(guò)程中下載這個(gè)鏡像。

  • 腳本第 4 行 “source scripts/docker_base.sh” 會(huì)啟動(dòng) docker_base.sh 腳本以確認(rèn)需要下載的基礎(chǔ)鏡像版本;

  • 而 docker_base.sh 第 3 行又呼叫 l4t_version.sh 腳本,獲取本系統(tǒng)上的 l4t 版本,例如為 r34.1.1,分別存入以下 5 個(gè)變量之中:

  • $L4T_VERSION=34.1.1

  • $L4T_RELEASE=34

  • $L4T_REVISION=1.1

  • $L4T_REVISION_MAJOR=1

  • $L4T_REVISION_MINOR=1

然后傳回給 docker_bash.sh 腳本使用;

  • docker_base.sh 根據(jù)上面變量決定基礎(chǔ)鏡像版本,存放到 $BASE_IMAGE_L4T 里,例如 “nvcr.io/nvidia/l4t-base:r34.1.1”,這樣就完成了第一個(gè)最重要的工作。

(2)確認(rèn) OpenCV 與 Python 版本:

腳本第 6、7 行分別執(zhí)行 opencv_version.sh python_version.sh,去決定這兩個(gè)部分的版本。

其中 OpenCV 部分經(jīng)過(guò)作者修改之后固定為 4.5.0 版本,并以 $OPENCV_DEB與$OPENCV_URL 變量存放安裝包的下載路徑與名稱(chēng)。而 Python 版本則指定于所使用的 Jetson 設(shè)備上的版本,如果是 JetPack 4.x 版本的設(shè)備則 Python 版本為 3.6,如果是 JetPack 5.0 以后版本的設(shè)備則 Python 版本為 3.8。

(3)確認(rèn)各容器相關(guān)應(yīng)用版本:

這部分主要是 PyTorch 與 TensorFlow 的版本,因?yàn)檫@兩個(gè)是目前深度學(xué)習(xí)領(lǐng)域使用率最高的框架,因此這里就以這兩個(gè)工具為主來(lái)創(chuàng)建深度學(xué)習(xí)的容器鏡像。

腳本第 37~137 行與 160~221 行的內(nèi)容,會(huì)根據(jù) $L4T_RELEASE 變量,分別針對(duì)創(chuàng)建 PyTorch 與 TensorFlow 鏡像所需要的配套資源,提供完整的對(duì)應(yīng)參數(shù),包括需要賦予對(duì)應(yīng)的下載鏈接、文件名稱(chēng)、鏡像標(biāo)簽(tag)等等信息,在 PyTorch 部分還需要提供 torchvision 與 torchaudio 的版本。

下表是根據(jù) NGC 提供的 l4t-ml 鏡像所整理的各項(xiàng)版本信息:

d294ea26-2ded-11ed-ba43-dac502259ad0.png

前面判斷好相關(guān)版本信息之后,就會(huì)分別調(diào)用第 14 行 build_pytorch()與第 142 行 build_tensorflow()分別創(chuàng)建 l4t-pytorch l4t-tensorflow 容器鏡像。

下面截屏是 build_pytorch()的主要內(nèi)容,會(huì)調(diào)用 scripts/docker_build.sh 腳本與目錄下的 Dockerfile.pytorch 配置文件,然后套用 6 個(gè) “--build-arg” 參數(shù)進(jìn)行實(shí)際創(chuàng)建的工作,這樣就完成對(duì) l4t-pytorch 鏡像的創(chuàng)建任務(wù)。

d2b0ab62-2ded-11ed-ba43-dac502259ad0.png

創(chuàng)建 l4t-tensorflow 鏡像的方式也是大致相同,就不重復(fù)說(shuō)明。腳本最后第 229~235 行是創(chuàng)建包含 PyTorch 與 TensorFlow 兩種框架的 l4t-ml 鏡像,主要指令如下:

d2d2e3bc-2ded-11ed-ba43-dac502259ad0.png

這樣就完成在 Jetson 上從頭創(chuàng)建深度學(xué)習(xí)相關(guān)的容器鏡像任務(wù),另一個(gè)創(chuàng)建 ROS 應(yīng)用的 docker_build_ros.sh 腳本內(nèi)容也是雷同,所有的關(guān)鍵就是先確認(rèn) $L4T_RELEASE 版本信息,其他的軟件版本都會(huì)根據(jù)這個(gè)參數(shù)進(jìn)行調(diào)整。

本文先講解這個(gè)開(kāi)源項(xiàng)目?jī)?nèi)的腳本內(nèi)容,下一篇文章會(huì)進(jìn)一步說(shuō)明 Dockerfile 的主要細(xì)節(jié),這樣就能很輕松地掌握容器鏡像的創(chuàng)建過(guò)程。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    4978

    瀏覽量

    102987
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    495

    瀏覽量

    22060
  • 英偉達(dá)
    +關(guān)注

    關(guān)注

    22

    文章

    3770

    瀏覽量

    90984
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    457

    瀏覽量

    11846

原文標(biāo)題:NVIDIA Jetson 系列文章(10):從頭創(chuàng)建Jetson的容器(1)

文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何在Docker中創(chuàng)建容器

    Docker是一個(gè)開(kāi)源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個(gè)輕量級(jí)的、可移植的、自給自足的容器。開(kāi)發(fā)者在筆記本上編譯測(cè)試通過(guò)的容器可以批量地在生產(chǎn)環(huán)境中部署,包括VMs(虛擬機(jī))、bare metal
    發(fā)表于 01-03 15:58

    請(qǐng)問(wèn)必須從頭創(chuàng)建BitGen .ut文件嗎?

    我知道ISE會(huì)生成一個(gè).ut文件。但是你不使用ISE是什么,一切都是命令行。是否必須從頭創(chuàng)建BitGen .ut文件?我還注意到,適用于Virtex 6的.ut文件不適用于Spartan 6.因此
    發(fā)表于 07-22 14:48

    jetson nano開(kāi)發(fā)板

    有大俠使用過(guò)jetson nano開(kāi)發(fā)板嗎?做了一塊擴(kuò)展板,有些問(wèn)題,請(qǐng)教下。
    發(fā)表于 08-20 10:54

    Jetson Nano簡(jiǎn)介

    目錄1.Jetson Nano簡(jiǎn)介2. Jetson Nano環(huán)境配置2.1 開(kāi)箱配件介紹2.2 燒錄系統(tǒng)2.3 開(kāi)機(jī)和基本設(shè)置2.4 開(kāi)發(fā)環(huán)境配置2.4.1 更新源和軟件2.4.2 關(guān)屏?xí)r間設(shè)置
    發(fā)表于 07-26 07:44

    Jetson NanoPWM4腳風(fēng)扇安裝問(wèn)題

    剛拆封的Jetson Nano配置是PWM4腳風(fēng)扇,發(fā)現(xiàn)開(kāi)機(jī)不轉(zhuǎn),感覺(jué)風(fēng)扇安裝問(wèn)題……jetson-nano-sd-card-image.zip發(fā)現(xiàn)3腳和4腳有區(qū)別,4腳能控制風(fēng)速,這個(gè)高級(jí)了。硬件
    發(fā)表于 09-08 06:12

    Jetson Nano具有哪些優(yōu)勢(shì)?Jetson Nano怎么安裝?

    Jetson Nano具有哪些優(yōu)勢(shì)?Jetson Nano怎么安裝?
    發(fā)表于 09-28 06:29

    NVIDIA Jetson的相關(guān)資料分享

    Jetson概述爆炸式增長(zhǎng)的AI模型的復(fù)雜性專(zhuān)為自主機(jī)器開(kāi)發(fā)人員設(shè)計(jì)的AI計(jì)算板加快AI處理的SDK“JetPack”概述NVIDIA Jetson是NVIDIA公司嵌入式單板計(jì)算機(jī)的一系列
    發(fā)表于 11-09 08:26

    NVIDIA Jetson介紹

    首發(fā)極術(shù)社區(qū)如對(duì)Arm相關(guān)技術(shù)感興趣,歡迎私信 aijishu20加入技術(shù)微信群。分享內(nèi)容NVIDIA Jetson是嵌入式計(jì)算平臺(tái),具有低功耗、高性能和小體積等特點(diǎn),可加速各行業(yè)的AI應(yīng)用落地
    發(fā)表于 12-14 08:05

    Jetson Nano是什么?有何作用

    Jetson Nano是一款小型,功能強(qiáng)大的計(jì)算機(jī),適用于嵌入式應(yīng)用程序和AI IoT這幾天開(kāi)始第一次使用Jetson Nano,也踩了一些坑,下面給大家分享一下,少走彎路如果您沒(méi)有用過(guò)樹(shù)莓派,且
    發(fā)表于 01-12 06:43

    ubuntu- python-ssh遠(yuǎn)程控制jetson nano與單片機(jī)串口通信的方法

    筆記本和jetson都是18。04用筆記本連jetson再用python寫(xiě)ssh連接nano,nano上插了板子可進(jìn)行通信para.pyimport paramiko #創(chuàng)建一個(gè)ssh的客戶(hù)端,用來(lái)
    發(fā)表于 01-19 06:32

    Made with KiCad(一):Jetson Nano Baseboard

    ?“ 該項(xiàng)目包含支持NVIDIA Jetson Nano、Xavier NX和TX2 NX SoM的基板,并開(kāi)源了所有硬件設(shè)計(jì)文件。它由Antmicro公司創(chuàng)建。Antmicro公司是一家定制硬件
    發(fā)表于 06-27 13:40

    NVIDIA Jetson Xavier NX開(kāi)發(fā)者套件的應(yīng)用

      Jetson Xavier NX 的計(jì)算能力使您能夠一次運(yùn)行所有這些容器,而不會(huì)犧牲跨多個(gè)傳感器數(shù)據(jù)流的實(shí)時(shí)性能。您可以使用托管在 NGC 上的容器從NVIDIA-AI-IOT/jetso
    的頭像 發(fā)表于 04-18 09:39 ?3204次閱讀
    NVIDIA <b class='flag-5'>Jetson</b> Xavier NX開(kāi)發(fā)者套件的應(yīng)用

    如何在NVIDIA Jetson平臺(tái)創(chuàng)建多攝像頭管道

      在本文中,我將展示如何在 NVIDIA Jetson 平臺(tái)上高效地實(shí)現(xiàn)這些常見(jiàn)任務(wù)。具體來(lái)說(shuō),我介紹了 jetmulticam ,一個(gè)易于使用的 Python 軟件包,用于創(chuàng)建多攝像頭管道。我在一個(gè)帶有環(huán)繞攝像頭系統(tǒng)的機(jī)器人上演示了一個(gè)特定的用例。
    的頭像 發(fā)表于 04-28 09:15 ?2503次閱讀

    如何使用預(yù)裝程序創(chuàng)建并分發(fā)AArch64容器

    本文我們將探討如何使用預(yù)裝程序創(chuàng)建并分發(fā) AArch64 容器。
    的頭像 發(fā)表于 09-30 10:57 ?1206次閱讀

    Docker 教程:如何將Helix QAC作為容器創(chuàng)建并運(yùn)行

    在此 Docker 教程中,你將學(xué)習(xí)如何創(chuàng)建 Helix QAC 并將其作為容器化鏡像運(yùn)行。 Docker 的基本定義是一種開(kāi)源和流行的操作系統(tǒng)級(jí)虛擬化(通常稱(chēng)為“容器化”)技術(shù),它是輕量級(jí)的,可
    的頭像 發(fā)表于 10-31 09:36 ?965次閱讀
    Docker 教程:如何將Helix QAC作為<b class='flag-5'>容器</b><b class='flag-5'>創(chuàng)建</b>并運(yùn)行
    主站蜘蛛池模板: 男人扒开添女人屁股| 一区二区三区高清视频| YELLOW视频直播在线观看高清| 久久免费国产视频| 亚洲蜜芽在线观看精品一区| 国产精品久久久久久久久齐齐 | 狠狠躁日日躁人人爽| 无限资源在线观看8| 姑娘视频日本在线播放| 日本双渗透| 扒开 浓密 毛| 人妻夜夜爽99麻豆AV| FREESEXVIDEO 性老少配| 年轻夫妇韩剧中文版免费观看 | 99RE6这里只有精品国产AV| 久久综合色一综合色88中文| 用震蛋调教女性下面视频| 久久4k岛国高清一区二区| 亚洲色噜噜狠狠网站| 黄色888| 性一交一乱一色一视频| 国产精品人妻99一区二| 午夜福利免费0948视频| 国产片MV在线观看| 亚洲成人国产| 果冻传媒在线观看完整版免费| 亚洲AV精品一区二区三区不卡| 国产亚洲精品99一区二区| 亚洲国产精品免费观看| 黑色丝袜美腿美女被躁翻了| 亚洲人成影院在线播放| 精品无码国产自产在线观看水浒传| 亚洲精品久久午夜麻豆| 黄色小说男男| 伊人久久网站| 免费观看男生桶美女私人部位| 99久久精品国产一区二区三区| 强姧伦久久久久久久久| 福利社影院| 性色AV乱码一区二区三区视频| 精品亚洲视频在线观看|