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

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

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

3天內不再提示

基于Tengine實現yolov4的cpu推理講解

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-15 00:19 ? 次閱讀

本期講解便是基于 Tengine 實現 yolov4的 cpu推理。

完成動機:

主要是為了熟悉tengine的推理部署流程

一、模型轉換

采用下面鏈接中yolov4的模型權重和配置文件

https://github.com/ultralytics/yolov3github.com

源模型使用的是darknet格式,因為yolov4新增了mish算子,所以需要增加對應算子的序列化代碼才能正常轉換,下面是我的代碼改動,基本按照tanh算子進行相應增加。

https://github.com/zjd1988/Tengine-Convert-Toolsgithub.com

convert tools增加算子的詳細流程,參考官方增加自定義算子步驟:

(1)在operator/include/operator目錄下增加mish.hpp 和mish/_param.hpp/_文件,/_由于mish算子不需要額外的參數配置,因此mish/_para.hpp并沒有添加。mish.hpp內容可以參考其他類似沒有參數配置的算子(比如tanh),在operator/operator 目錄下增加mish.cpp,增加算子實現代碼;

(2)在operator/operator目錄下增加mish算子內存分配的代碼,因為mish算子不涉及這部分修改,并未做任何修改

(3)在operator/operator/plugin/init.cpp文件中的operator/_plugin/_init函數中增加算子的注冊函數調用

(4)增加mish算子序列化和解析代碼

(4-1)在serializer/include/tengine/v2/tm2/_format.h中增加mish的類型宏定義和字符串宏定義 ;
(4-2)在serializer/tengine/v2/tm2/_op/_load.cpp文件中增加LoadTmMishOp函數實現,同時在LoadTmOpFunc函數中增加調用LoadTmMishOp的邏輯代碼;
(4-3)在serializer/tengine/v2/tm2/_op/_save.cpp文件中增加SaveTmMishOp函數實現,同時在SaveTmReorgOp函數中增加調用SaveTmMishOp的邏輯代碼;
(4-4)在serializer/tengine/v2/tm2/_op/_serializer.hpp,增加LoadTmMishOp和 SaveTmMishOp的函數聲明

(4-5)本次轉換模型針對darknet,所以需要對tools/darknet/darknet/_serializer.cpp文件中增加mish算子解析的相應邏輯。 因為mish沒有單獨使用,而是作為conv的激活函數調用,所以是在LoadConv2D函數參照leaky增加相應的代碼。其他單獨算子的實現也可以參考其他類似算子的實現方式

完成代碼改動后,按照如下操作進行編譯,即可生成轉換工具

mkdir build && cd build
cmake ..
make -j4 && make install

最后執行轉換動作(提前準備好模型文件)

./install/bin/tm_convert_tool -f darknet -p yolov4.cfg -m yolov4.weights -o yolov4.tmfile

二、推理

官方代碼鏈接下的readme并沒有找到介紹如何新增算子,但是可以參考類似算子進行修改添加,下面是我參考tanh算子的實現,進行的修改

(1-1)在inlcude/tengine/_op.h中增加mish的枚舉定義,include/tengine/_op/_name.h中增加mish的字符串宏定義
(1-2)在src/op/mish.c中增加mish算子的注冊函數
(1-3)在src/serializer/tm/tm2/_format.h 和src/serializer/tm/op/tm2/_mish.c 中增加序列化相關代碼,

note:src/serializer/tm/tm2/_format.h中定義算子的類型數值需要跟convert/_tools下的serializer/include/tengine/v2/tm2/_format.h代碼保持一致

(1-4)在src/dev/cpu/op/目錄下增加mish算子實現代碼目錄,包括mish/_ref.c(x86)、mish/_hcl/_arm.c(arm),其中contex-a目錄下的文件為具體的kernel實現代碼

也可以參考下面的鏈接,查看有哪些代碼改動和文件增加:

https://github.com/zjd1988/Tenginegithub.com

測試

測試圖片使用的是標題中的圖片(512x384)test.jpg
測試代碼使用的官方代碼

examples/tm_yolov3_tiny.cpp

做了簡單修改。

三、后續

(1)合并conv和mish算子
(2)后續抽空新增一個需要配置參數的算子

四、使用感受

(1)模型轉換和推理分離,新增算子需要增加兩次,官方回復會后續考慮合并,希望會越來越方便
(2)推理引擎編譯速度快(本文目的不在于測試性能,只是驗證tengine在推理yolov4的正確性)
(3)代碼結構清晰,便于閱讀和調試

以上便是解答過程以及使用感受。

更多Tengine相關內容請關注Tengine-邊緣AI推理框架專欄。

審核編輯 黃昊宇

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

    關注

    68

    文章

    10879

    瀏覽量

    212182
  • Tengine
    +關注

    關注

    1

    文章

    47

    瀏覽量

    2861
收藏 人收藏

    評論

    相關推薦

    采用華為云 Flexus 云服務器 X 實例部署 YOLOv3 算法完成目標檢測

    一、前言 1.1 開發需求 這篇文章講解:?采用華為云最新推出的 Flexus 云服務器 X 實例部署 YOLOv3 算法,完成圖像分析、目標檢測。 隨著計算機視覺技術的飛速發展,深度學習模型如
    的頭像 發表于 01-02 12:00 ?62次閱讀
    采用華為云 Flexus 云服務器 X 實例部署 <b class='flag-5'>YOLOv</b>3 算法完成目標檢測

    在RK3568教學實驗箱上實現基于YOLOV5的算法物體識別案例詳解

    一、實驗目的 本節視頻的目的是了解YOLOv5模型的用途及流程,并掌握基于YOLOV5算法實現物體識別的方法。 二、實驗原理 YOLO(You Only Look Once?。?YOLOv
    發表于 12-03 14:56

    CPU推理:AI算力配置新范式

    在當前的人工智能領域,尤其是涉及到深度學習的推理階段,行業普遍認為GPU是唯一的選擇。然而,GPU的成本相對較高,且對于某些特定的應用場景,其高昂的價格和較高的能耗成為了一大負擔。相比之下,CPU
    的頭像 發表于 11-21 01:03 ?292次閱讀
    <b class='flag-5'>CPU</b><b class='flag-5'>推理</b>:AI算力配置新范式

    AI推理CPU當道,Arm驅動高效引擎

    AI的訓練和推理共同鑄就了其無與倫比的處理能力。在AI訓練方面,GPU因其出色的并行計算能力贏得了業界的青睞,成為了當前AI大模型最熱門的芯片;而在 AI 推理方面,具備卓越通用性和靈活性的CPU
    的頭像 發表于 11-13 14:34 ?2499次閱讀
    AI<b class='flag-5'>推理</b><b class='flag-5'>CPU</b>當道,Arm驅動高效引擎

    YOLOv6在LabVIEW中的推理部署(含源碼)

    相關介紹文章,所以筆者在實現YOLOv6 ONNX 在LabVIEW中的部署推理后,決定和各位讀者分享一下如何使用LabVIEW實現YOLOv
    的頭像 發表于 11-06 16:07 ?330次閱讀
    <b class='flag-5'>YOLOv</b>6在LabVIEW中的<b class='flag-5'>推理</b>部署(含源碼)

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測

    隨著人工智能和大數據時代的到來,傳統嵌入式處理器中的CPU和GPU逐漸無法滿足日益增長的深度學習需求。為了應對這一挑戰,在一些高端處理器中,NPU(神經網絡處理單元)也被集成到了處理器里。NPU
    發表于 10-24 10:13

    手冊上新 |迅為RK3568開發板NPU例程測試

    rknn-toolkit-lite2環境搭建和使用 3.1 rknn-toolkit-lite2環境搭建 3.1.1 直接安裝 3.1.2 conda虛擬環境安裝 3.2 rknn-toolkit-lite2推理測試 第4
    發表于 10-23 14:06

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測-迅為電子

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測-迅為電子
    的頭像 發表于 08-23 14:58 ?763次閱讀
    RK3588 技術分享 | 在Android系統中使用NPU<b class='flag-5'>實現</b><b class='flag-5'>Yolov</b>5分類檢測-迅為電子

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測

    隨著人工智能和大數據時代的到來,傳統嵌入式處理器中的CPU和GPU逐漸無法滿足日益增長的深度學習需求。為了應對這一挑戰,在一些高端處理器中,NPU(神經網絡處理單元)也被集成到了處理器里。NPU
    發表于 08-20 11:13

    基于迅為RK3588【RKNPU2項目實戰1】:YOLOV5實時目標分類

    [/url] 【RKNPU2 人工智能開發】 【AI深度學習推理加速器】——RKNPU2 從入門到實踐(基于RK3588和RK3568) 【RKNPU2項目實戰1】:YOLOV5實時目標分類 【RKNPU2項目實戰2】:SORT目標追蹤 【RKNPU2項目實戰3】車牌識別
    發表于 08-15 10:51

    手冊上新 |迅為RK3568開發板NPU例程測試

    rknn-toolkit-lite2環境搭建和使用 3.1 rknn-toolkit-lite2環境搭建 3.1.1 直接安裝 3.1.2 conda虛擬環境安裝 3.2 rknn-toolkit-lite2推理測試 第4
    發表于 08-12 11:03

    英特爾助力京東云用CPU加速AI推理,以大模型構建數智化供應鏈

    英特爾助力京東云用CPU加速AI推理,以大模型構建數智化供應鏈
    的頭像 發表于 05-27 11:50 ?558次閱讀
    英特爾助力京東云用<b class='flag-5'>CPU</b>加速AI<b class='flag-5'>推理</b>,以大模型構建數智化供應鏈

    基于OpenCV DNN實現YOLOv8的模型部署與推理演示

    基于OpenCV DNN實現YOLOv8推理的好處就是一套代碼就可以部署在Windows10系統、烏班圖系統、Jetson的Jetpack系統
    的頭像 發表于 03-01 15:52 ?1720次閱讀
    基于OpenCV DNN<b class='flag-5'>實現</b><b class='flag-5'>YOLOv</b>8的模型部署與<b class='flag-5'>推理</b>演示

    YOLOv8+PyQT5打造細胞計數與識別應用說明

    YOLOv8對象檢測模型基于自定義數據集訓練紅白細胞檢測模型,然后通過工具導出模型為ONNX,基于OpenVINO實現模型推理,完成細胞檢測識別,根據檢測到的細胞類別與數目,統計,在PyQT5打造的界面上顯示輸出檢測結果。
    的頭像 發表于 01-15 17:22 ?1191次閱讀
    <b class='flag-5'>YOLOv</b>8+PyQT5打造細胞計數與識別應用說明

    深入淺出Yolov3和Yolov4

    Yolov3是目標檢測Yolo系列非常非常經典的算法,不過很多同學拿到Yolov3或者Yolov4的cfg文件時,并不知道如何直觀的可視化查看網絡結構。
    的頭像 發表于 01-11 10:42 ?806次閱讀
    深入淺出<b class='flag-5'>Yolov</b>3和<b class='flag-5'>Yolov4</b>
    主站蜘蛛池模板: 一本大道香蕉大vr在线吗视频| 欧美日韩a级a| 乱操视频| 国产成人毛片毛片久久网| 日韩欧美亚洲综合久久影院d3| 怡红院亚洲怡红院首页| 永久福利盒子日韩日韩免费看| 免费 的黄色| 色成人亚洲| 性欧美暴力猛交69hd| 久久精品网站免费观看| 在线观看播放视频www| 欧美黑人黄色片| 亚洲一级色片| 新版天堂8在线天堂| 俄罗斯毛片基地| 一级特黄aaa大片| 日本黄页视频| 天堂在线bt| 五月天天| 夜夜爽夜夜操| 日韩一级片视频| 人人骚| 波多野结衣三个女人蕾丝边| 成人爽a毛片在线视频网站| 亚洲jizzjizz中国妇女| 性xxxxx| 欧美视频不卡一区二区三区| 亚洲一区二区在线| 丁香婷婷啪啪| 一区二区免费播放| 中文字幕成人乱码在线电影| 国产a三级三级三级| 高清一区二区三区免费| 亚洲成a人在线播放www| 拍拍拍美女黄色1000视频| 欧美人交性视频在线香蕉| 国内a级毛片免费···| 成人羞羞视频国产| 80s国产成年女人毛片| www在线视频在线播放|