国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

如何使用框架訓練網絡加速深度學習推理

星星科技指導員 ? 來源:NVIDIA ? 作者:Houman,Yu-Te Cheng, ? 2022-04-01 15:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

TensorRT 7.0 開始, Universal Framework Format( UFF )被棄用。在本文中,您將學習如何使用新的 TensorFlow -ONNX- TensorRT 工作流部署經過 TensorFlow 培訓的深度學習模型。圖 1 顯示了 TensorRT 的高級工作流。

pYYBAGJGrYaAOHdwAADOhwG6fXc468.png

圖 1 。 TensorRT 是一種推理加速器。

首先,使用任何框架訓練網絡。網絡訓練后,批量大小和精度是固定的(精度為 FP32 、 FP16 或 INT8 )。訓練好的模型被傳遞給 TensorRT 優化器,優化器輸出一個優化的運行時(也稱為計劃)。。 plan 文件是 TensorRT 引擎的序列化文件格式。計劃文件需要反序列化才能使用 TensorRT 運行時運行推斷。

要優化在 TensorFlow 中實現的模型,只需將模型轉換為 ONNX 格式,并使用 TensorRT 中的 ONNX 解析器解析模型并構建 TensorRT 引擎。圖 2 顯示了高級 ONNX 工作流。

pYYBAGJGrYyAFfa6AAAwQkoylqI526.jpg

圖 2 。 ONNX 工作流。

在本文中,我們將討論如何使用 ONNX 工作流創建一個 TensorRT 引擎,以及如何從 TensorRT 引擎運行推理。更具體地說,我們演示了從 Keras 或 TensorFlow 中的模型到 ONNX 的端到端推理,以及使用 ResNet-50 、語義分段和 U-Net 網絡的 TensorRT 引擎。最后,我們將解釋如何在其他網絡上使用此工作流。

下載 TensorFlow -onnx- TensorRT 后 – 代碼 tar 。 gz 文件,您還應該從 Cityscapes dataset scripts repo 下載 labels.py ,并將其與其他腳本放在同一個文件夾中。

ONNX 概述

ONNX 是機器學習和深度學習模型的開放格式。它允許您將不同框架(如 TensorFlow 、 PyTorch 、 MATLAB 、 Caffe 和 Keras )的深度學習和機器學習模型轉換為單一格式。

它定義了一組通用的運算符、深入學習的通用構建塊集和通用文件格式。它提供計算圖的定義以及內置運算符。可能有一個或多個輸入或輸出的 ONNX 節點列表形成一個無環圖。

ResNet ONNX 工作流示例

在這個例子中,我們展示了如何在兩個不同的網絡上使用 ONNX 工作流并創建一個 TensorRT 引擎。第一個網絡是 ResNet-50 。

工作流包括以下步驟:

將 TensorFlow / Keras 模型轉換為。 pb 文件。

將。 pb 文件轉換為 ONNX 格式。

創建 TensorRT 引擎。

從 TensorRT 引擎運行推斷。

將模型轉換為。 pb

第一步是將模型轉換為。 pb 文件。以下代碼示例將 ResNet-50 模型轉換為。 pb 文件:

pYYBAGJGroSAHXTkAAA3M58TYgE971.png

poYBAGJGro6Aas16AAA1y0oqBWA160.png

除了 Keras ,您還可以從以下位置下載 ResNet-50 :

深度學習示例 GitHub 存儲庫:提供最新的深度學習示例網絡。您還可以看到 ResNet-50 分支,它包含一個腳本和方法來訓練 ResNet-50v1 。 5 模型。

NVIDIA NGC 型號 :它有預訓練模型的檢查點列表。例如,在 ResNet-50v1 。 5 上搜索 TensorFlow ,并從 Download 頁面獲取最新的檢查點。

將。 pb 文件轉換為 ONNX

第二步是將。 pb 模型轉換為 ONNX 格式。為此,首先安裝 tf2onnx 。

安裝 tf2onnx 后,有兩種方法可以將模型從。 pb 文件轉換為 ONNX 格式。第二種方法是使用命令行。運行以下命令:

poYBAGJGrp6AauNjAAAJUsSVoZg886.png

從 ONNX 創建 TensorRT 引擎

要從 ONNX 文件創建 TensorRT 引擎,請運行以下命令:

poYBAGJGrsCAchTgAAA9Ld7RNrs608.png

pYYBAGJGrsqAO8PKAAAC-dmKx7E317.png

此代碼應保存在引擎。 py 文件,稍后在文章中使用。

此代碼示例包含以下變量:

最大工作區大小: 在執行時 ICudaEngine 可以使用的最大 GPU 臨時內存。

構建器創建一個空網絡( builder.create_network() ), ONNX 解析器將 ONNX 文件解析到網絡( parser.parse(model.read()) )。您可以為網絡( network.get_input(0).shape = shape )設置輸入形狀,然后生成器將創建引擎( engine = builder.build_cuda_engine(network) )。要創建引擎,請運行以下代碼示例:

pYYBAGJGruGAMPXuAAAtUQcqcpk628.png

在這個代碼示例中,首先從 ONNX 模型獲取輸入形狀。接下來,創建引擎,然后將引擎保存在。 plan 文件中。

運行來自 TensorRT 引擎的推理:

TensorRT 引擎在以下工作流中運行推理:

為 GPU 中的輸入和輸出分配緩沖區。

將數據從主機復制到 GPU 中分配的輸入緩沖區。

在 GPU 中運行推理。

將結果從 GPU 復制到主機。

根據需要重塑結果。

下面的代碼示例詳細解釋了這些步驟。此代碼應保存在推理。 py 文件,稍后將在本文中使用。

poYBAGJGrviAfprXAAA-GEWQnbE980.png

pYYBAGJGrv-AK8KsAABG5Zo7Tiw771.png

pYYBAGJGrweAehrVAAA6DPqzQCU341.png

為第一個輸入行和輸出行確定兩個維度。您可以在主機( h_input_1 、 h_output )中創建頁鎖定內存緩沖區。然后,為輸入和輸出分配與主機輸入和輸出相同大小的設備內存( d_input_1 , d_output )。下一步是創建 CUDA 流,用于在設備和主機分配的內存之間復制數據。

在這個代碼示例中,在 do_inference 函數中,第一步是使用 load_images_to_buffer 函數將圖像加載到主機中的緩沖區。然后將輸入數據傳輸到 GPU ( cuda.memcpy_htod_async(d_input_1, h_input_1, stream) ),并使用 context.execute 運行推理。最后將結果從 GPU 復制到主機( cuda.memcpy_dtoh_async(h_output, d_output, stream) )。

ONNX 工作流語義分割實例

在本文 基于 TensorRT 3 的自主車輛快速 INT8 推理 中,作者介紹了一個語義分割模型的 UFF 工作流過程。

在本文中,您將使用類似的網絡來運行 ONNX 工作流來進行語義分段。該網絡由一個基于 VGG16 的編碼器和三個使用反褶積層實現的上采樣層組成。網絡在 城市景觀數據集 上經過大約 40000 次迭代訓練

有多種方法可以將 TensorFlow 模型轉換為 ONNX 文件。一種方法是 ResNet50 部分中解釋的方法。 Keras 也有自己的 Keras 到 ONNX 文件轉換器。有時, TensorFlow -to-ONNX 不支持某些層,但 Keras-to-ONNX 轉換器支持這些層。根據 Keras 框架和使用的層類型,您可能需要在轉換器之間進行選擇。

在下面的代碼示例中,使用 Keras-to-ONNX 轉換器將 Keras 模型直接轉換為 ONNX 。下載預先訓練的語義分段文件 semantic_segmentation.hdf5 。

pYYBAGJGrxuAAvmEAAAd4F0DPHw247.png

圖 3 顯示了網絡的體系結構。

poYBAGJGrY2AE4CrAABfgyFbT7k214.png

圖 3 。基于 VGG16 的語義分割模型。

與前面的示例一樣,使用下面的代碼示例創建語義分段引擎。

pYYBAGJGryaARbkjAAAq9e7lxJY387.png

要測試模型的輸出,請使用 城市景觀數據集 。要使用城市景觀,必須具有以下功能: sub_mean_chw 和 color_map 。這些函數也用于 post , 基于 TensorRT 3 的自主車輛快速 INT8 推理 。

在下面的代碼示例中, sub_mean_chw 用于從圖像中減去平均值作為預處理步驟, color_map 是從類 ID 到顏色的映射。后者用于可視化。

pYYBAGJGrzqAQX-AAAA3KOHqUOg723.png

poYBAGJGr0OABoXYAAAbHaod2Dw526.png

下面的代碼示例是上一個示例的其余代碼。必須先運行上一個塊,因為需要定義的函數。使用這個例子比較 Keras 模型和 TensorRT 引擎 semantic 。 plan 文件的輸出,然后可視化這兩個輸出。根據需要替換占位符 /path/to/semantic_segmentation.hdf5 和 input_file_path 。

poYBAGJGr16AQnJHAABCiJPN_VU162.png

poYBAGJGr2WAZGszAAAPXrDEFdc349.png

圖 4 顯示了實際圖像和實際情況,以及 Keras 的輸出與 TensorRT 引擎的輸出的對比。如您所見, TensorRT 發動機的輸出與 Keras 的類似。

pYYBAGJGrZSACUPPAAQTP3OFMbU453.png

圖 4a 原始圖像 。

poYBAGJGrZaAGb1ZAAB8Qxy0v4k876.png

圖 4b 地面真相標簽

poYBAGJGrZeADUl3AABv5WMB6Sk459.png

圖 4c 。 TensorRT 的輸出。

pYYBAGJGrZyAZI-mAABv5WMB6Sk593.png

圖 4d : Keras 的輸出。

在其他網絡上試試

現在您可以在其他網絡上嘗試 ONNX 工作流。有關分段網絡的好例子的更多信息,請參閱 GitHub 上的 具有預訓練主干的分割模型 。

作為一個例子,我們用一個 ONNX 網絡來說明如何使用。本例中的網絡是來自 segmentation_models 庫的 U-Net 。在這里,我們只加載模型,而沒有對其進行訓練。您可能需要在首選數據集上訓練這些模型。

關于這些網絡的一個重要點是,當您加載這些網絡時,它們的輸入層大小如下所示:( None , None , None , 3 )。要創建一個 TensorRT 引擎,您需要一個輸入大小已知的 ONNX 文件。在將此模型轉換為 ONNX 之前,請通過為其輸入指定大小來更改網絡,然后將其轉換為 ONNX 格式。

例如,從這個庫( segmentation _ models )加載 U-Net 網絡并為其輸入指定大小( 244 、 244 、 3 )。在為推理創建了 TensorRT 引擎之后,做一個與語義分段類似的轉換。根據應用程序和數據集的不同,可能需要使用不同的顏色映射。

poYBAGJGr3qARsYkAAAr2J6FKGE279.png

我們之前提到的另一種下載方式是從 vz6 下載。它有一個預先訓練模型的檢查點列表。例如,您可以在 TensorFlow 中搜索 UNet ,然后轉到 Download 頁面以獲取最新的檢查點。

總結

在這篇文章中,我們解釋了如何使用 TensorFlow-to-ONNX-to-TensorRT 工作流來部署深度學習應用程序,并給出了幾個示例。第一個例子是 ResNet-50 上的 ONNX- TensorRT ,第二個例子是在 Cityscapes 數據集上訓練的基于 英偉達數據中心深度學習產品性能 的語義分割。

關于作者

Houman 是 NVIDIA 的高級深度學習軟件工程師。他一直致力于開發和生產 NVIDIA 在自動駕駛車輛中的深度學習解決方案,提高 DNN 的推理速度、精度和功耗,并實施和試驗改進 NVIDIA 汽車 DNN 的新思想。他在渥太華大學獲得計算機科學博士學位,專注于機器學習

About Yu-Te Cheng

Yu-Te Cheng 是 NVIDIA 自主駕駛組高級深度學習軟件工程師,從事自駕領域的各種感知任務的神經結構搜索和 DNN 模型訓練、壓縮和部署,包括目標檢測、分割、路徑軌跡生成等。他于 2016 年獲得卡內基梅隆大學機器人學碩士學位。

About Josh Park

Josh Park 是 NVIDIA 的汽車解決方案架構師經理。到目前為止,他一直在研究使用 DL 框架的深度學習解決方案,例如在 multi-GPUs /多節點服務器和嵌入式系統上的 TensorFlow 。此外,他一直在評估和改進各種 GPUs + x86 _ 64 / aarch64 的訓練和推理性能。他在韓國大學獲得理學學士和碩士學位,并在德克薩斯農工大學獲得計算機科學博士學位

審核編輯:郭婷

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

    關注

    30

    文章

    4967

    瀏覽量

    73960
  • 深度學習
    +關注

    關注

    73

    文章

    5598

    瀏覽量

    124396
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【團購】獨家全套珍藏!龍哥LabVIEW視覺深度學習實戰課(11大系列課程,共5000+分鐘)

    、GPU加速訓練(可選) 雙軌教學:傳統視覺算法+深度學習方案全覆蓋 輕量化部署:8.6M超輕OCR模型,適合嵌入式設備集成 無監督學習:無
    發表于 12-04 09:28

    【團購】獨家全套珍藏!龍哥LabVIEW視覺深度學習實戰課程(11大系列課程,共5000+分鐘)

    、GPU加速訓練(可選) 雙軌教學:傳統視覺算法+深度學習方案全覆蓋 輕量化部署:8.6M超輕OCR模型,適合嵌入式設備集成 無監督學習:無
    發表于 12-03 13:50

    在Ubuntu20.04系統中訓練神經網絡模型的一些經驗

    本帖欲分享在Ubuntu20.04系統中訓練神經網絡模型的一些經驗。我們采用jupyter notebook作為開發IDE,以TensorFlow2為訓練框架,目標是
    發表于 10-22 07:03

    NVIDIA TensorRT LLM 1.0推理框架正式上線

    TensorRT LLM 作為 NVIDIA 為大規模 LLM 推理打造的推理框架,核心目標是突破 NVIDIA 平臺上的推理性能瓶頸。為實現這一目標,其構建了多維度的核心實現路徑:一
    的頭像 發表于 10-21 11:04 ?1165次閱讀

    【「AI芯片:科技探索與AGI愿景」閱讀體驗】+第二章 實現深度學習AI芯片的創新方法與架構

    Transformer 模型 通過簡化Transformer 模型而不影響其收斂性能和下游任務性能來加速GPU中的Transformer 網絡。簡化Transformer 模型在GPU上的訓練吞吐量提升了10
    發表于 09-12 17:30

    如何在機器視覺中部署深度學習神經網絡

    圖 1:基于深度學習的目標檢測可定位已訓練的目標類別,并通過矩形框(邊界框)對其進行標識。 在討論人工智能(AI)或深度學習時,經常會出現“
    的頭像 發表于 09-10 17:38 ?900次閱讀
    如何在機器視覺中部署<b class='flag-5'>深度</b><b class='flag-5'>學習</b>神經<b class='flag-5'>網絡</b>

    【機器視覺】睿擎平臺支持NCNN AI 推理框架,輕松實現實時目標檢測( 睿擎線下 Workshop 報名已開啟)|產品動

    在工業4.0與邊緣計算加速發展的背景下,嵌入式設備的實時目標檢測能力已成為智能制造等領域的核心技術需求。然而,移動端設備受限于算力與能耗,傳統深度學習框架難以兼顧效率與精度。為此,睿擎
    的頭像 發表于 08-20 17:40 ?5253次閱讀
    【機器視覺】睿擎平臺支持NCNN AI <b class='flag-5'>推理</b><b class='flag-5'>框架</b>,輕松實現實時目標檢測( 睿擎線下 Workshop 報名已開啟)|產品動

    基于米爾瑞芯微RK3576開發板部署運行TinyMaix:超輕量級推理框架

    本文將介紹基于米爾電子MYD-LR3576開發平臺部署超輕量級推理框架方案:TinyMaix 摘自優秀創作者-短笛君 TinyMaix 是面向單片機的超輕量級的神經網絡推理庫,即
    發表于 07-25 16:35

    如何在RK3576開發板上運行TinyMaix :超輕量級推理框架--基于米爾MYD-LR3576開發板

    本文將介紹基于米爾電子MYD-LR3576開發平臺部署超輕量級推理框架方案:TinyMaix摘自優秀創作者-短笛君TinyMaix是面向單片機的超輕量級的神經網絡推理庫,即TinyML
    的頭像 發表于 07-25 08:03 ?4221次閱讀
    如何在RK3576開發板上運行TinyMaix :超輕量級<b class='flag-5'>推理</b><b class='flag-5'>框架</b>--基于米爾MYD-LR3576開發板

    信而泰×DeepSeek:AI推理引擎驅動網絡智能診斷邁向 “自愈”時代

    模態的技術特性,DeepSeek正加速推動AI在金融、政務、科研及網絡智能化等關鍵領域的深度應用。 信而泰:AI推理引擎賦能網絡智能診斷新范
    發表于 07-16 15:29

    寧暢與與百度文心大模型展開深度技術合作

    近日,百度正式開源文心大模型4.5系列模型。作為文心開源合作伙伴,寧暢在模型開源首日即實現即刻部署,做到“開源即接入、發布即可用”。據悉,文心4.5開源系列全部基于飛槳深度學習框架進行高效訓練
    的頭像 發表于 07-07 16:26 ?871次閱讀

    大模型推理顯存和計算量估計方法研究

    ,如乘法、加法等; (2)根據各層計算操作的類型和復雜度,確定每層所需的計算量; (3)將各層計算量相加,得到模型總的計算量。 基于硬件加速的算力估計 隨著硬件加速技術的發展,許多深度學習
    發表于 07-03 19:43

    大模型時代的深度學習框架

    量是約為 25.63M,在ImageNet1K數據集上,使用單張消費類顯卡 RTX-4090只需大約35~40個小時 ,即可完成ResNet50模型的預訓練。在 大模型時代 ,由于大模型參數規模龐大,無法跟CNN時代的小模型一樣在單張顯卡上完成訓練,需要構建多張AI
    的頭像 發表于 04-25 11:43 ?835次閱讀
    大模型時代的<b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>框架</b>

    百度飛槳框架3.0正式版發布

    大模型訓練成本高?推理效率低?硬件適配難? 4月1日,百度發布 飛槳框架3.0正式版 !五大特性專為大模型設計。 作為大模型時代的Infra“基礎設施”,深度
    的頭像 發表于 04-02 19:03 ?1187次閱讀
    百度飛槳<b class='flag-5'>框架</b>3.0正式版發布

    摩爾線程GPU原生FP8計算助力AI訓練

    近日,摩爾線程正式開源MT-MegatronLM與MT-TransformerEngine兩大AI框架。通過深度融合FP8混合訓練策略和高性能算子庫,這兩大框架在國產全功能GPU上實現
    的頭像 發表于 03-17 17:05 ?1518次閱讀
    摩爾線程GPU原生FP8計算助力AI<b class='flag-5'>訓練</b>