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

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

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

3天內不再提示

在這個項目中,將在線和離線TSM網絡部署到FPGA,通過2D CNN執行視頻理解任務。

OpenFPGA ? 來源:OpenFPGA ? 2023-07-07 10:44 ? 次閱讀

在這個項目中,將在線和離線 TSM 網絡部署到 FPGA,通過 2D CNN 執行視頻理解任務。

1776a3c8-1c5e-11ee-962d-dac502259ad0.png

介紹

在這個項目中,展示了 Temporal-Shift-Module ( https://hanlab.mit.edu/projects/tsm/)在 FPGA 上解決視頻理解問題的實用性和性能。

TSM 是一種網絡結構,可以通過 2D CNN 有效學習時間關系。在較高級別上,這是通過一次對單個幀(在線 TSM)或多個幀(離線 TSM)執行推理并在這些張量流經網絡時在這些張量之間轉移激活來完成的。這是通過將shift操作插入 2D 主干網的bottleneck層(在本例中為 mobilenetv2 和 resnet50)來完成的。然后,該shift操作會打亂時間相鄰幀之間的部分輸入通道。

詳細的解析可以看下面的文章:

?

https://zhuanlan.zhihu.com/p/64525610

?

將這樣的模型部署到 FPGA 可以帶來許多好處。首先,由于 TSM 已經在功效方面帶來了巨大優勢,部署到 FPGA 可以進一步推動這一點。

TSM網絡結構

我們將首先回顧這些 TSM 網絡的底層結構以及到 DPU 兼容實現的轉換。TSM 網絡的核心結構是插入骨干模型bottleneck層中的時間shift模塊,以實現時間建模。例如,插入shift操作后,TSM MobilenetV2 bottleneck層具有以下結構:

17a3a8b4-1c5e-11ee-962d-dac502259ad0.png

Online Shift

在演示的在線 TSM 網絡中,如果我們處于時間步驟 T,我們也處于推理輪 T。shift模塊將輸入通道的前 1/8 移位到包含來自上一推理輪的相同通道的shift緩沖區( T – 1)。然后,第 (T – 1) 輪的內容被移入 T 輪的當前張量。

Offline Shift

對于離線 TSM,如 resnet50 演示(當前禁用)中所使用的,shift緩沖區被繞過。相反,我們將N 個相鄰的時間步驟作為批次中的張量進行處理。通道可以在批次內直接移動,而不是將步驟 (T – 1) 中的通道存儲在緩沖區中。此外,這使得能夠訪問批次內的未來回合(即推理步驟 T 可以與步驟 T + 1 存在于同一批次中)。通過這種訪問,離線shift也會將通道從步驟 T + 1 移位到步驟 T 的張量中。

DPU模型優化

為了將TSM部署到 DPU,需要對原始 TSM 模型進行兩項重大更改。第一個是將shift模塊與網絡分離,因為我們無法使用支持的張量流操作來實現shift操作。為了實現這一目標,我們在每次出現shift模塊時對模型進行管道化。

17ca8920-1c5e-11ee-962d-dac502259ad0.png

通過將shift模塊放置在其自己的管道階段,我們可以靈活地從 DPU 內核卸載shift操作。下面我們可以看到 MobilenetV2 在線 TSM 的前 4 個管道階段(從右到左)。如果比較兩個bottleneck層實現,并刪除shift操作,則這對應于以下轉換,其中bottleneck層在移位模塊之前包含 1 個輸出,在shift模塊之后包含 2 個輸入。一個輸入包含來自頂部分支的移位后張量,另一個輸入包含底部分支中未移位的殘差張量。

1801df7e-1c5e-11ee-962d-dac502259ad0.png

為簡單起見,這里我們使用 mobilenetV2 主干網來可視化 TSM,但 resnet-50 主干網也使用相同的方法。

為了實現這種流水線結構, Tensorflow 模型中有一個標志,指示我們是否要生成不包括移位操作的拆分模型(用于 DPU 部署)或在 Tensorflow 中實現移位操作的普通統一模型。如果設置了分割標志,則在每次移位操作之前添加新的輸出,并在移位后添加新的占位符,其中輸入移位后的輸入。

因為移位(shift)模塊僅插入到類似于上面所示的 3 級 MobilenetV2 瓶頸的結構中,所以邏輯的實現得到了簡化。然而,對于 resnet 模型,我們確保在快捷路徑中的歸約邏輯之后插入移位管道階段。由于移位+卷積路徑在瓶頸層完成之前獨立于快捷路徑,因此快捷路徑上的操作可以放置在3個階段中的任何一個中。

DPU量化策略

雖然如上所述對模型進行流水線化簡化了轉換實現,但由于我們的網絡不再是單個內核,因此使 DPU 部署變得復雜。相反,我們為每個管道階段都有一個內核,無需進行移位操作(MobilenetV2 為 11,resnet50 為 17)。

為了量化這樣的網絡,我們必須為每個內核提供未量化的輸入。為了生成這些信息,我們的模型可以在沒有管道階段的情況下生成。然后,我們直接在 Tensorflow 中對來自真實校準數據集的幀進行推理,但是我們在每個管道邊界轉儲中間網絡狀態。轉儲的狀態包括需要饋送到 vai_q_tensorflow 的節點名稱等元數據以及相應的張量數據。當在校準集中重復推理時,所有這些信息都會被“波及”。

轉儲此中間推理信息后,我們獲得了輸入 vai_q_tensorflow 的每個內核的輸入張量。該邏輯全部由我們的tensorflow模型腳本和quantize_split.sh腳本中的DUMP_QUANTIZE標志處理(項目結構在“Deployment”部分中描述)。一旦對所有內核運行量化,我們就可以為每個內核生成一個 ELF 文件,就可以集成到我們的主代碼中。

演示

下面我們介紹 2 個平臺(ZCU104 和 Ultra96V2)和 2 個模型(MobilenetV2 Online TSM 和 Resnet50 Offline TSM)的性能細分。我們將 FPS 計算為 1/(預處理 + 推理延遲)。

MobilenetV2 在線 TSM 延遲:

ZCU104 (60.1 FPS) - B4096,300MHz,RAM 高,啟用所有功能

185fa168-1c5e-11ee-962d-dac502259ad0.png

Ultra96V2 (38.4 FPS) - B2304,300MHz,RAM 低,啟用所有功能

188ff282-1c5e-11ee-962d-dac502259ad0.png

現在,我們可以將推理延遲與之前在移動設備和 NVIDIA Jetson 平臺上收集的 TSM 數據進行比較。

18ae88dc-1c5e-11ee-962d-dac502259ad0.png

部署

上面演示的所有代碼都位于 TSM github 存儲庫的 fpga 分支中:

?

https://github.com/mit-han-lab/temporal-shift-module

?

環境設置

要為上面這些設置開發環境,按照此處所述進行初始 Vitis-AI 環境設置:

?

https: //github.com/Xilinx/Vitis-AI

?

使用的 ZCU104 DPU 映像如下所述:

?

https: //github.com/Xilinx/Vitis-AI/tree/master/mpsoc

?

ZCU104 VCU 映像是按照此處所述的 ivas 示例應用程序構建的:

?

https://github. com/Xilinx/Vitis-In-Depth-Tutorial/tree/master/Runtime_and_System_Optimization/Design_Tutorials/02-ivas-ml

?

Ultra96V2 映像是根據 2020.1 Avnet BSP 構建的,并在 petalinux 構建時啟用 Vitis-AI

?

https://github.com/Avnet/vitis/tree/2020.1

?

參考文獻

?

https://www.hackster.io/joshua-noel/tsm-networks-for-efficient-video-understanding-on-fpga-f881ba

?

?

https://hanlab.mit.edu/projects/tsm/

?

?

https: //github.com/Xilinx/Vitis-AI/tree/master/mpsoc

?

?

https://github.com/Avnet/vitis/tree/2020.1

?

代碼

?

https://github.com/mit-han-lab/temporal-shift-module/tree/master/tsm_fpga

?

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

    關注

    1630

    文章

    21798

    瀏覽量

    606046
  • 模塊
    +關注

    關注

    7

    文章

    2735

    瀏覽量

    47753
  • TSM
    TSM
    +關注

    關注

    0

    文章

    7

    瀏覽量

    6601
收藏 人收藏

    評論

    相關推薦

    怎么在xC8中傳遞和返回2D數組

    并運行良好,直到調用。這個函數在主函數中遇到。在我的項目中,有必要使用2D數組,在需要時通過&返回它們,并且我有幾個函數,如上面執行不同
    發表于 09-06 17:07

    怎么在xC8中傳遞和返回2D數組?

    并運行良好,直到調用。這個函數在主函數中遇到。在我的項目中,有必要使用2D數組,在需要時通過&返回它們,并且我有幾個函數,如上面執行不同
    發表于 10-09 14:17

    理解任務切換和任務狀態改變的關鍵是什么?

    理解任務調度與切換的關鍵是從代碼層面理解各種列表的操作邏輯思路:狀態列表(Running,Ready,Blocked,Suspended)和事件列表(比如隊列,信號量等中的阻塞事件列表)。這些操作是在各個API 函數中的,綜合起來感覺還是有些霧水。現在遇到一個問題麻煩大佬
    發表于 06-13 09:00

    如何移植一個CNN神經網絡FPGA中?

    訓練一個神經網絡并移植Lattice FPGA上,通常需要開發人員既要懂軟件又要懂數字電路設計,是個不容易的事。好在FPGA廠商為我們提供了許多工具和IP,我們可以
    發表于 11-26 07:46

    可分離卷積神經網絡在 Cortex-M 處理器上實現關鍵詞識別

    。● 卷積神經網絡 (CNN)基于 DNN 的 KWS 的一大主要缺陷是無法為語音功能中的局域關聯性、時域關聯性、頻域關聯性建模。CNN 則可將輸入時域和頻域特征當作圖像處理,并且在上面執行
    發表于 07-26 09:46

    2D3D視頻自動轉換系統

    研究和實現了一個基于OMAP3530的2D3D視頻自動轉換系統,重點研究深度圖獲取和深度信息渲染等主要核心技術及其實現。該系統利用OMAP3530其特有的雙核結構,進行系統優化:由其
    發表于 03-06 14:20 ?1次下載
    <b class='flag-5'>2D</b><b class='flag-5'>到</b>3<b class='flag-5'>D</b><b class='flag-5'>視頻</b>自動轉換系統

    一款只通過單個普通的2D攝像頭就能實時捕捉視頻中的3D動作的系統

    CNN的骨骼預測當中,最重要的骨盆的3D姿勢,他們提出的姿態公式得出的結果,吻合度可與世界最先進的離線方法媲美。通過組合預測2D和3
    的頭像 發表于 05-14 09:53 ?1.3w次閱讀

    通過2D NoC可實現FPGA內部超高帶寬邏輯互連

    Achronix 最新基于臺積電(TSMC)的7nm FinFET工藝的Speedster7t FPGA器件包含了革命性的新型二維片上網絡2D NoC)。
    發表于 05-28 10:27 ?659次閱讀
    <b class='flag-5'>通過</b><b class='flag-5'>2D</b> NoC可實現<b class='flag-5'>FPGA</b>內部超高帶寬邏輯互連

    基于差分進化算法的CNN推斷任務卸載策略

    卸載到云上執行,難以適應時延敏感的移動應用程序。為解決上述問題,提出了一種基于改進差分進化算法的CNN推斷任務卸載策略,它采用端云協作模式將計算任務
    發表于 05-10 14:06 ?2次下載

    從C matlab FPGA,如何實現CNN項目

    經過了前面的開胃菜,項目正式開始。一步步講解這個模型怎么玩起來的。從C matlab FPGA ,三個平臺聯合起來完成
    的頭像 發表于 03-15 17:13 ?2546次閱讀

    Achronix Speedster7t FPGA芯片中2D NoC的設計細節

    片上網絡(2D NoC)來處理這些高帶寬數據流。Achronix的FPGA中特有的2D NoC實現是一種創新,它與用可編程邏輯資源來實現2D
    的頭像 發表于 04-21 09:27 ?1554次閱讀

    2D執行器在X/Y 2D空間中移動微型機器人

    電子發燒友網站提供《2D執行器在X/Y 2D空間中移動微型機器人.zip》資料免費下載
    發表于 07-21 10:02 ?2次下載
    <b class='flag-5'>2D</b><b class='flag-5'>執行</b>器在X/Y <b class='flag-5'>2D</b>空間中移動微型機器人

    西門子CPU-1200在線和診斷工具-比較離線CPU與在線CPU

    可以將在線 CPU 中的代碼塊與項目中的代碼塊進行比較。如果項目中的代碼塊與在線 CPU的代碼塊不匹配,則可通過“比較”編輯器使
    的頭像 發表于 01-31 13:41 ?4910次閱讀

    使用CNN進行2D路徑規劃

    卷積神經網絡(CNN)是解決圖像分類、分割、目標檢測等任務的流行模型。本文將CNN應用于解決簡單的二維路徑規劃問題。主要使用Python, PyTorch, NumPy和OpenCV。
    的頭像 發表于 02-13 14:30 ?786次閱讀

    Temporal-Shift-Module在 FPGA上解決視頻理解問題的實用性和性能

    在這個項目中將在線離線 TSM 網絡部署
    的頭像 發表于 07-07 10:47 ?784次閱讀
    Temporal-Shift-Module在 <b class='flag-5'>FPGA</b>上解決<b class='flag-5'>視頻</b><b class='flag-5'>理解</b>問題的實用性和性能
    主站蜘蛛池模板: 97伊人| 狠狠色婷婷七月色综合 | 色内内免费视频播放 | 黑人性xxxⅹxxbbbbb | 日本一区二区三区四区不卡 | 伊人网站在线 | 美脚连裤袜老师正在播放 | 奇米影色777四色在线首页 | 国产亚洲自在精品久久 | 四虎国产在线 | 碰免费人人人视频 | 在线观看黄色x视频 | 日韩欧美成人乱码一在线 | 欧美人与动性视频在线观 | 天天摸天天碰天天碰 | 成年人黄色大片大全 | 国产主播精品在线 | 日韩欧美亚洲综合久久影院d3 | 精品影视网站入口 | 99xxxx开心 | 三级在线播放 | 亚州三级视频 | 欧美极品在线播放 | 性猛交xxxx乱大交孕妇 | 免费的毛片网站 | 手机在线黄色网址 | 黑人边吃奶边扎下面激情视频 | 亚洲色图狠狠干 | 欧洲一卡二卡乱码新区 | 在线播放国产一区 | 久久男人视频 | 2022欧美高清中文字幕在线看 | 人人看人人鲁狠狠高清 | 我被黑人巨大开嫩苞在线观看 | 日韩成人免费一级毛片 | 久久久久久噜噜噜久久久精品 | 奇米影视亚洲四色8888 | 日韩啪啪电影 | 亚洲视频精品 | 天天操天天干天天舔 | a级毛片毛片免费很很综合 a级男女性高爱潮高清试 |