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

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

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

3天內不再提示

物件檢測的模型訓練與優化

NVIDIA英偉達企業解決方案 ? 來源:NVIDIA英偉達企業解決方案 ? 作者:NVIDIA英偉達企業解 ? 2022-04-27 10:26 ? 次閱讀

物件檢測 (objectdetection) 或物件定位 (object location) 是目前普及度最高的人工智能應用,也是過去幾年中神經網絡發展最迅猛的領域,短短幾年之中創造出非常多優異的經典算法,并且各有所長,如今在數量與質量上都還持續進化中,這現象其實也是造成使用者很大困擾之處,因為究竟哪種神經網絡最適合您的使用場景,最終還是得經過實際驗證之后才能確認。

TAO 工具非常高效地協助我們解決這個難題,讓我們在不了解各種神經網絡結構與算法、也不熟悉 Tensorflow 或 Pytorch 這些復雜框架之前,不用撰寫任何 C++Python 代碼,就能非常輕易地訓練好深度學習模型,并且快速驗證不同網絡模型的性能與效果,這估計能減少能降低 80% 以上的前期學習與評估的時間成本。

在 TAO 的 cv_samples 里提供多個物件檢測算法,包括 detectnet_v2、dssd、ssd、facenet、fast_rcnn、lprnet、mask_rcnn、retinanet、unet、ssd、yolo_v4等十多個物件檢測范例,每一個流程與本系列前一個 “圖像分類的模型訓練” 的范例是一致的,因此這里只挑選目前普及度較高的 ssd 神經網絡進行示范就行。

首先進入 Jupyter 操作界面,打開 cv_samples/ssd/ssd.ipynb腳本,然后按照以下步驟逐步執行:

0. 環境變量配置與路徑映射(Setup env variables and map drives):

在系列文章 “視覺類訓練腳本的環境配置” 內有詳細的講解,這里只要對下面兩變量進行處理就可以:

  • %env KEY=<您的NGC秘鑰>

  • “%envLOCAL_PROJECT_DIR=YOUR_LOCAL_PROJECT_DIR_PATH”改成“os.environ["LOCAL_PROJECT_DIR"] = os.getcwd()”

然后執行這部分的 4 個指令塊

  1. 安裝 TAO 啟動器(Install the TAO launcher):

跳過第一個安裝指令塊,執行“!tao info”指令塊就行。

2. 準備數據集與預訓練模型(Preparedataset and pre-trained model)

數據集處理通常是模型訓練過程比較消耗人力的步驟。這里推薦不使用腳本里的步驟去下載與解壓縮,因為這里指向的下載位置在國外網站,這對大部分使用者是很困擾的,因此最好自行手動下載處理。

(1) TAO 的物件檢測模型訓練支持 KITTI 標注格式,這里使用的范例數據集與系列文章“視覺數據格式處理與增強”是同一套,如果前面實驗已將下載的話就復制一份過來就行,也可以重新在https://pan.baidu.com/s/1WcRt9ONqsYhLRmL8Rg8_YQ(密碼855n),下載 data_object_image_2.zip 與 data_object_label_2.zip 到 ssd.ipynb 相同目錄下,然后執行以下指令進行解壓縮:

cd ~/tao/cv_samples/ssd  # 請根據您實際路徑unzip -u data_object_image_2.zip -d dataunzip-udata_object_label_2.zip-ddata

會在這個工作目錄下生成 data/training/image_2、data/training/label_2data/testing三個子目錄,其中訓練用數據量為 7481 張圖片、測試數據量為 7518 張。

如果有自己的數據集想要轉到 TAO 來進行訓練,除了先將標注格式轉成 KITTI 之外,最好也遵循上面的路徑結構,這樣就不需修改 spec 目錄下相關配置文件里面的設定值,對初學者是最便利的方式。

(1) 接著調用 generate_val_dataset.py,從訓練數據中提取 10% 內容作為校驗用途,存放在 data/val 目錄,于是在 data/training 下面的圖像與標注文件數量就剩下 6733 個。然后執行 “2.3Generate tfrecords” 指令塊,將訓練與校驗數據集都轉成 tfrecords 格式,分別存放在對應的路徑之下。

(2) 如果要配合遷移學習功能的話,接下來就是從 NGC 下載合適的預訓練模型。這里選擇的是 “nvidia/tao/pretrained_object_detection:resnet18”,最終下載的模型文件為 89MB 大小的 resnet_18.hdf5 模型文件。

只要這個數據集整理步驟做得完整,后面的部分就會很簡單。

3. 提供訓練用配置文件(Providetraining specification)

在 TAO 所有范例里,配置文件是所有內容的精華之處,這必須由專業算法工程師群進行調試,不僅要這些神經網絡的結構與算法有足夠深入的了解,還需要經過足夠長的重復調試過程,才能調試出一個夠完整的優化參數組合,這部分是英偉達非常龐大精英人力與成本的所提煉出來的精髓。

物件檢測應用的設定組,比前面的圖像分類要復雜很多,雖然初學者沒有能力去做細節參數的調整,但還是得了解一下主要結構,對于學習深度神經網絡會有很大的幫助。

在 ssd 項目的 specs 目錄下有 5 個配置文件,其中與訓練相關的有 4 個,但實際使用到的就是ssd_train_resnet18_kitti.txt與ssd_retrain_resnet18_kitti.txt這兩個配置文件。

前者是提供給首次訓練模型時使用,后者是對修剪過的模型進行再訓練時使用,兩者的內容幾乎一樣,主要差異在配合遷移學習功能的部分,前者使用“pretrain_model_path”指向從NGC下載的預訓練模型,后者使用“pruned_model_path”指向后面會操作的 “修剪過的模型”,其他參數都一樣。

現在就以 ssd_train_resnet18_kitti.txt 配置文件來做說明,里面總共有 6 個參數組:

(1) ssd_config:

這是根據網絡種類所命名,不同網絡的配置組內容都不太一樣,例如 yolov3 范例的配置組為 “yolov3_config”,以此類推。每種神經網絡都有截然不同的參數內容,在 ssd 網絡有 12 個參數的設定,而 yolo_v4 網絡有將近 20 個,所以網絡之間的配置是不能套用或互換的。如果未來要開發自己的特殊模型,最好從現有的 20 范例里面去挑選,就能以該網絡的配置文件為基礎進行修改。

關于這個配置組的內容就不多時間去說明,初學者先不要貿然去修改,以免訓練過程發生不可預期的錯誤,或者模型效果不好。

(2) training_config:

執行訓練時的一些參數設定,這是使用者能進行調整的部分,包括以下部分:

  • batch_size_per_gpu:根據執行訓練的GPU總顯存進行調整

  • num_epochs:訓練回合數,這里設定為80

  • enable_qat:開啟QAT訓練模式,這里預設值為 ”false”,表示不開啟

  • checkpoint_interval:每多少回合生成一次模型文件,這里預設值為1

  • learning_rate、regularizer 與 optimizer:如果對 ssd 有深入了解的,可以進一步調整。

(3) evaluation_config:

這些存放模型評估的一些參數,可以根據計算設備的顯存值調整 batch_size 大小,不過這些并不影響訓練的結果。

(4) nms_config:

NMS (Non-maximumsuppression) 非極大抑制應用的目的,是要消除多余的框,找到最佳的物體檢查位置。

(5) augmentation_config:

這部分的參數內容請參考系類文章 “視覺類的數據增強”,有詳細的說明。雖然沒辦法進入 TAO 源碼(未開放)去確認,但這項參數設定組應該顯示在物件檢測模型訓練過程中,并將“數據增強”功能加進來,這對提高模型精準度會起到很大的效果。

(6) dataset_config:

這里最主要配置數據源的路徑,以及類別 “key:value” 對的映射關系;

  • 一組 data_source:

里面包含 tfrecords_path 與 image_directory_path 兩個路徑設定;

  • 多組 target_class_mapping:

每一組對應的 “key” 是數據集的原始類別名稱,后面映射的 “value” 是訓練后模型的識別分類。

例如這里使用的 KITTI 數據集中,原始分類有 “car/ van/cyclist/ person_sitting/ pedestrian/ DontCare/ tram/ truck/ misc” 等 9 種分類,經過映射后只保留 “Car/cyclist/ pedestrian” 三個分類,沒有在映射組里的分類就會忽略,例如 truck、misc 等。

如果使用自己的數據集訓練模型,這部分需要自行調整到合適的類別對應,否則訓練的結果也不能實現您要達到的識別效果。

  • 一組 validation_data_sources:

包括 label_directory_path 與 label_directory_path,存放校驗數據集的圖像與標注路徑。

以上 6 組配置在每個物件檢測模型的配置文件中都有,但是配置內容不盡相同, TAO 已經為所支持的網絡都提供優化過的參數內容,初學者只要直接使用就可以,等日后有更深入的掌握,再試著去修改這些參數。

原文標題:NVIDIA Jetson Nano 2GB 系列文章(61):物件檢測的模型訓練與優化

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

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

    關注

    42

    文章

    4772

    瀏覽量

    100851
  • 檢測
    +關注

    關注

    5

    文章

    4492

    瀏覽量

    91522
  • 模型
    +關注

    關注

    1

    文章

    3254

    瀏覽量

    48889

原文標題:NVIDIA Jetson Nano 2GB 系列文章(61):物件檢測的模型訓練與優化

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

收藏 人收藏

    評論

    相關推薦

    AI模型部署邊緣設備的奇妙之旅:目標檢測模型

    并非易事,它涉及到從選擇合適的算法架構到針對特定硬件平臺進行優化等一系列復雜的工作。 接下來,我們將詳細介紹如何在資源受限的邊緣設備上成功部署目標檢測模型,探索其背后的原理和技術,并討論解決該領域內常見
    發表于 12-19 14:33

    什么是大模型、大模型是怎么訓練出來的及大模型作用

    本文通俗簡單地介紹了什么是大模型、大模型是怎么訓練出來的和大模型的作用。 ? 什么是大模型模型
    的頭像 發表于 11-25 09:29 ?1660次閱讀
    什么是大<b class='flag-5'>模型</b>、大<b class='flag-5'>模型</b>是怎么<b class='flag-5'>訓練</b>出來的及大<b class='flag-5'>模型</b>作用

    使用PyTorch在英特爾獨立顯卡上訓練模型

    《PyTorch 2.5重磅更新:性能優化+新特性》中的一個新特性就是:正式支持在英特爾獨立顯卡上訓練模型!
    的頭像 發表于 11-01 14:21 ?518次閱讀
    使用PyTorch在英特爾獨立顯卡上<b class='flag-5'>訓練</b><b class='flag-5'>模型</b>

    AI大模型訓練數據來源分析

    AI大模型訓練數據來源廣泛且多元化,這些數據源對于構建和優化AI模型至關重要。以下是對AI大模型訓練
    的頭像 發表于 10-23 15:32 ?710次閱讀

    AI大模型的性能優化方法

    AI大模型的性能優化是一個復雜而關鍵的任務,涉及多個方面和策略。以下是一些主要的性能優化方法: 一、模型壓縮與優化
    的頭像 發表于 10-23 15:01 ?746次閱讀

    FP8模型訓練中Debug優化思路

    目前,市場上許多公司都積極開展基于 FP8 的大模型訓練,以提高計算效率和性能。在此,我們整理并總結了客戶及 NVIDIA 技術團隊在 FP8 模型訓練過程中的 debug 思路和方法
    的頭像 發表于 09-06 14:36 ?343次閱讀
    FP8<b class='flag-5'>模型</b><b class='flag-5'>訓練</b>中Debug<b class='flag-5'>優化</b>思路

    如何使用經過訓練的神經網絡模型

    使用經過訓練的神經網絡模型是一個涉及多個步驟的過程,包括數據準備、模型加載、預測執行以及后續優化等。
    的頭像 發表于 07-12 11:43 ?1023次閱讀

    大語言模型的預訓練

    能力,逐漸成為NLP領域的研究熱點。大語言模型的預訓練是這一技術發展的關鍵步驟,它通過在海量無標簽數據上進行訓練,使模型學習到語言的通用知識,為后續的任務微調奠定基礎。本文將深入探討大
    的頭像 發表于 07-11 10:11 ?439次閱讀

    人臉識別模型訓練流程

    人臉識別模型訓練流程是計算機視覺領域中的一項重要技術。本文將詳細介紹人臉識別模型訓練流程,包括數據準備、模型選擇、
    的頭像 發表于 07-04 09:19 ?993次閱讀

    人臉識別模型訓練是什么意思

    人臉識別模型訓練是指通過大量的人臉數據,使用機器學習或深度學習算法,訓練出一個能夠識別和分類人臉的模型。這個模型可以應用于各種場景,如安防監
    的頭像 發表于 07-04 09:16 ?639次閱讀

    訓練模型的基本原理和應用

    訓練好的模型,這些模型通常在某些通用任務上表現出色,并且可以作為后續特定任務的起點,通過遷移學習或微調(Fine-tuning)等方式進行適應和優化。以下是對預
    的頭像 發表于 07-03 18:20 ?2909次閱讀

    深度學習模型訓練過程詳解

    深度學習模型訓練是一個復雜且關鍵的過程,它涉及大量的數據、計算資源和精心設計的算法。訓練一個深度學習模型,本質上是通過優化算法調整
    的頭像 發表于 07-01 16:13 ?1315次閱讀

    如何訓練優化神經網絡

    神經網絡是人工智能領域的重要分支,廣泛應用于圖像識別、自然語言處理、語音識別等多個領域。然而,要使神經網絡在實際應用中取得良好效果,必須進行有效的訓練優化。本文將從神經網絡的訓練過程、常用
    的頭像 發表于 07-01 14:14 ?481次閱讀

    【大語言模型:原理與工程實踐】大語言模型的預訓練

    大語言模型的核心特點在于其龐大的參數量,這賦予了模型強大的學習容量,使其無需依賴微調即可適應各種下游任務,而更傾向于培養通用的處理能力。然而,隨著學習容量的增加,對預訓練數據的需求也相應
    發表于 05-07 17:10

    谷歌模型訓練軟件有哪些?谷歌模型訓練軟件哪個好?

    谷歌在模型訓練方面提供了一些強大的軟件工具和平臺。以下是幾個常用的谷歌模型訓練軟件及其特點。
    的頭像 發表于 03-01 16:24 ?903次閱讀
    主站蜘蛛池模板: 天堂网在线.www天堂在线| 色噜噜狠狠狠狠色综合久一| 国产黄色在线| 黄色hd| 夜夜狠狠| 久久国产免费观看精品| 国产午夜久久精品| 国产18到20岁美女毛片| 欧美成人免费夜夜黄啪啪| 久久夜夜操| 国产成人在线影院| 黄色午夜影院| 欧美丝袜一区| 亚洲免费成人在线| 日韩高清成人毛片不卡| 五月激情视频| 亚洲一级毛片中文字幕| 海棠高h粗暴调教双性男男 | 思思久久96热在精品不卡| 国产亚洲精品久久久久久午夜| xxx性xxx| 久久婷婷婷| 五月天婷婷在线视频| 日韩三级一区| 日本视频黄色| 教官的好爽好深h片段| 免费一级特黄a| 欧美在线高清视频| 激情开心婷婷| 1314亚洲人成网站在线观看| 免费中国jlzzjlzz在线播放| 黄 在线| 一卡二卡卡四卡无人区中文| 国产精品成人aaaaa网站| 黄视频在线免费看| 色综合天天综合网国产成人| 色网站免费| 韩国三级理在线视频观看| 久精品视频村上里沙| 一级片a| 窝窝午夜在线观看免费观看|