在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

從頭創建Jetson的容器

NVIDIA英偉達企業解決方案 ? 來源:NVIDIA英偉達企業解決方案 ? 作者:NVIDIA英偉達企業解 ? 2022-09-07 09:59 ? 次閱讀

使用 Docker 容器的最大好處就是 “獨立性強”,在前面文章中我們教大家如何使用 NVIDIA 在 NGC 提供創建好的 l4t-ml 系列鏡像為基礎,去創建各種機器學習 / 深度學習的開發或部署用途的獨立容器,包括各種基于 TensorRT 的推理應用、基于 PyTorch 的各種 YOLO 相關應用等等。

但是 l4t-ml 容器內將大部分深度學習所需要的工具全部涵蓋進去,使得這個容器鏡像變得十分龐大,例如配合 JetPack 5.0 DP 版本的 nvcr.io/nvidia/l4t-ml:r34.1.1-py3 鏡像需要占用 16.2G 空間,這對大部分存儲空間較為緊湊的 Jetson 邊緣設備來說是個不小的負擔,需要進一步的優化。

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

  • 基礎鏡像

這是相對神奇的環節,我們至少得先在一個“以操作系統為基礎”的基礎鏡像文件之上去創建新的容器,不過還好操作系統源頭都會提供這些基礎鏡像,只要我們能找到這些基礎鏡像的發行位置,就能在 Dockerfile 一開始使用 “FROM” 指令進行導入。

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

l4t-base 容器內只有最基礎的操作系統、驅動與 Python 開發環境,并未安裝 CUDA、cuDNN 或 TensorRT 等開發庫,L4T 版本與 JetPack 版本是對應的,請參考下表:

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

如果要使用 l4t-base 鏡像為基礎,去創建與深度學習相關應用的鏡像文件,就需要自行在 Dockerfile 內加入 CUDA / cuDNN / TensorRT 以及其他所需要的依賴庫與軟件的安裝步驟,以下整理出不同 JetPack 版本所對應的 CUDA / cuDNN / TensorRT / OpenCV 的版本,提供讀者在創建相關鏡像時候可以參考:

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

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

基礎容器的版本編號是對應 L4T 版本號,如下圖:

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

因此要創建 Jetson 容器的首要工作,就是先確認系統的 L4T 版本,然后再挑選合適的基礎鏡像來進行創建的任務。

  • 添加所需軟件的安裝步驟與其他細節:

這部分就是將平常安裝軟件的正確步驟加入 Dockerfile,使用 “RUN” 指令來執行所有安裝內容,為了要讓容器結構更加簡化,通常會將所有需要的依賴庫全部放在一個 “RUN” 指令里操作,因此創建者需要先收集并確認所需要的內容。

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

這部分的細節內容相當繁瑣,需要比較多的執行經驗與整理過程,對初學者來說難度較大,因此本文特別挑選 NVIDIA 高級工程師所維護的 jetson-container 開源項目,針對在 Jetson 設備上創建深度學習與 ROS 兩大類應用,提供各種對應的 Dockerfile 參考內容,包括安裝 CUDA、cuDNN、TensorRT、OpenCV、PyTorch、TensorFlow 以及 ROS 相關環境的細節,讀者可以參考這些內容再進行調整。

接下來就是下載 jetson-container 項目,并且以創建 l4t-ml 容為示范來進行講解其操作的重點,讀者只要比照相同的邏輯進行調整與修改,就能輕松地創建自己的應用與開發用途的容器鏡像。

1、下載開源項目

項目開源倉位置在 https://github.com/dusty-nv/jetson-containers,請執行以下指令下載到Jetson 設備上:

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

項目倉的內容總共有將近 60 個文件,主要分為以下三大類:

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

  • 在 scripts 目錄下有 16 個創建容器與確認各項相關軟件版本的 .sh 腳本文件;

  • 在 test 目錄下有 21 個測試用的 Python 代碼。

接下來分析執行的重點。

2、分析創建容器的腳本

這個項目主要提供深度學習與 ROS 兩大應用類別的容器創建資源,真正的使用入口就是 scripts 目錄下的 docker_build_ml.shdocker_build_ros.sh 這兩個腳本,其余腳本多是輔助用途的,用來協助判斷相關軟件版本,然后甚至對應變量給執行腳本進行完整的鏡像創建步驟。

現在以 docker_build_ml.sh 為例來進行說明,后面可以加上 all、TensorFlow 或 PyTorch 等機器學習框架選項,現在來看看腳本的主要內容:

(1)確認基礎鏡像版本:

前面說過,創建 Docker 鏡像的首要任務就是要確認 L4T 版本,然后指定 NGC 中合適的基礎鏡像版本,作為 Dockerfile 中第一個 “FROM”參數,在 “docker build” 過程中下載這個鏡像。

  • 腳本第 4 行 “source scripts/docker_base.sh” 會啟動 docker_base.sh 腳本以確認需要下載的基礎鏡像版本;

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

  • $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 根據上面變量決定基礎鏡像版本,存放到 $BASE_IMAGE_L4T 里,例如 “nvcr.io/nvidia/l4t-base:r34.1.1”,這樣就完成了第一個最重要的工作。

(2)確認 OpenCV 與 Python 版本:

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

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

(3)確認各容器相關應用版本:

這部分主要是 PyTorch 與 TensorFlow 的版本,因為這兩個是目前深度學習領域使用率最高的框架,因此這里就以這兩個工具為主來創建深度學習的容器鏡像。

腳本第 37~137 行與 160~221 行的內容,會根據 $L4T_RELEASE 變量,分別針對創建 PyTorch 與 TensorFlow 鏡像所需要的配套資源,提供完整的對應參數,包括需要賦予對應的下載鏈接、文件名稱、鏡像標簽(tag)等等信息,在 PyTorch 部分還需要提供 torchvision 與 torchaudio 的版本。

下表是根據 NGC 提供的 l4t-ml 鏡像所整理的各項版本信息:

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

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

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

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

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

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

這樣就完成在 Jetson 上從頭創建深度學習相關的容器鏡像任務,另一個創建 ROS 應用的 docker_build_ros.sh 腳本內容也是雷同,所有的關鍵就是先確認 $L4T_RELEASE 版本信息,其他的軟件版本都會根據這個參數進行調整。

本文先講解這個開源項目內的腳本內容,下一篇文章會進一步說明 Dockerfile 的主要細節,這樣就能很輕松地掌握容器鏡像的創建過程。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    5076

    瀏覽量

    103721
  • 容器
    +關注

    關注

    0

    文章

    499

    瀏覽量

    22120
  • 英偉達
    +關注

    關注

    22

    文章

    3847

    瀏覽量

    91971
  • Docker
    +關注

    關注

    0

    文章

    492

    瀏覽量

    11965

原文標題:NVIDIA Jetson 系列文章(10):從頭創建Jetson的容器(1)

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何在Docker中創建容器

    Docker是一個開源的引擎,可以輕松的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal
    發表于 01-03 15:58

    請問必須從頭創建BitGen .ut文件嗎?

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

    jetson nano開發板

    有大俠使用過jetson nano開發板嗎?做了一塊擴展板,有些問題,請教下。
    發表于 08-20 10:54

    Jetson Nano簡介

    目錄1.Jetson Nano簡介2. Jetson Nano環境配置2.1 開箱配件介紹2.2 燒錄系統2.3 開機和基本設置2.4 開發環境配置2.4.1 更新源和軟件2.4.2 關屏時間設置
    發表于 07-26 07:44

    Jetson NanoPWM4腳風扇安裝問題

    剛拆封的Jetson Nano配置是PWM4腳風扇,發現開機不轉,感覺風扇安裝問題……jetson-nano-sd-card-image.zip發現3腳和4腳有區別,4腳能控制風速,這個高級了。硬件
    發表于 09-08 06:12

    Jetson Nano具有哪些優勢?Jetson Nano怎么安裝?

    Jetson Nano具有哪些優勢?Jetson Nano怎么安裝?
    發表于 09-28 06:29

    NVIDIA Jetson的相關資料分享

    Jetson概述爆炸式增長的AI模型的復雜性專為自主機器開發人員設計的AI計算板加快AI處理的SDK“JetPack”概述NVIDIA Jetson是NVIDIA公司嵌入式單板計算機的一系列
    發表于 11-09 08:26

    NVIDIA Jetson介紹

    首發極術社區如對Arm相關技術感興趣,歡迎私信 aijishu20加入技術微信群。分享內容NVIDIA Jetson是嵌入式計算平臺,具有低功耗、高性能和小體積等特點,可加速各行業的AI應用落地
    發表于 12-14 08:05

    Jetson Nano是什么?有何作用

    Jetson Nano是一款小型,功能強大的計算機,適用于嵌入式應用程序和AI IoT這幾天開始第一次使用Jetson Nano,也踩了一些坑,下面給大家分享一下,少走彎路如果您沒有用過樹莓派,且
    發表于 01-12 06:43

    ubuntu- python-ssh遠程控制jetson nano與單片機串口通信的方法

    筆記本和jetson都是18。04用筆記本連jetson再用python寫ssh連接nano,nano上插了板子可進行通信para.pyimport paramiko #創建一個ssh的客戶端,用來
    發表于 01-19 06:32

    Made with KiCad(一):Jetson Nano Baseboard

    ?“ 該項目包含支持NVIDIA Jetson Nano、Xavier NX和TX2 NX SoM的基板,并開源了所有硬件設計文件。它由Antmicro公司創建。Antmicro公司是一家定制硬件
    發表于 06-27 13:40

    NVIDIA Jetson Xavier NX開發者套件的應用

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

    如何在NVIDIA Jetson平臺創建多攝像頭管道

      在本文中,我將展示如何在 NVIDIA Jetson 平臺上高效地實現這些常見任務。具體來說,我介紹了 jetmulticam ,一個易于使用的 Python 軟件包,用于創建多攝像頭管道。我在一個帶有環繞攝像頭系統的機器人上演示了一個特定的用例。
    的頭像 發表于 04-28 09:15 ?2621次閱讀

    如何使用預裝程序創建并分發AArch64容器

    本文我們將探討如何使用預裝程序創建并分發 AArch64 容器
    的頭像 發表于 09-30 10:57 ?1282次閱讀

    Docker 教程:如何將Helix QAC作為容器創建并運行

    在此 Docker 教程中,你將學習如何創建 Helix QAC 并將其作為容器化鏡像運行。 Docker 的基本定義是一種開源和流行的操作系統級虛擬化(通常稱為“容器化”)技術,它是輕量級的,可
    的頭像 發表于 10-31 09:36 ?1023次閱讀
    Docker 教程:如何將Helix QAC作為<b class='flag-5'>容器</b><b class='flag-5'>創建</b>并運行
    主站蜘蛛池模板: 天天槽天天槽天天槽 | 黄色片免费看视频 | 天天做天天爱天天综合网2021 | 成人夜夜 | 天天澡天天摸天天爽免费 | 免费国产zzzwww色 | 亚洲国产七七久久桃花 | 么公的好大好硬好深好爽视频 | 亚洲一二三区在线观看 | 性欧美一级 | 五月婷婷在线观看视频 | 嗯!啊!使劲用力在线观看 | 丁香网五月天 | 国产男人搡女人免费视频 | 免费视频国产 | 黄网站色成年片大免费软件 | 天天视频国产免费入口 | 偷偷鲁影院手机在线观看 | 天堂在线www在线资源 | 人人艹在线视频 | 综合网伊人 | 久久天天躁狠狠躁狠狠躁 | 色综合网天天综合色中文男男 | 寄宿日记在线看 | 狠狠做深爱婷婷综合一区 | 欧美日韩亚洲国产一区二区综合 | 日韩毛片免费线上观看 | 婷婷日日夜夜 | jizjizjizjiz日本护士出水 | 国色天香精品亚洲精品 | 亚洲一级香蕉视频 | 四虎东方va私人影库在线观看 | 激情久久久久久久久久久 | 天天擦天天干 | 国产黄色大全 | 狠狠色狠狠色狠狠五月ady | 黄色网址 在线播放 | 欧美色影视 | 福利视频欧美 | 久久美女免费视频 | 天天天天干 |