亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

MNN是一個輕量級的深度神經(jīng)網(wǎng)絡(luò)推理引擎,在端側(cè)加載深度神經(jīng)網(wǎng)絡(luò)模型進行推理預(yù)測。目前,MNN已經(jīng)在阿里巴巴的手機淘寶、手機天貓、優(yōu)酷等20多個App中使用,覆蓋直播、短視頻、搜索推薦、商品圖像搜索、互動營銷、權(quán)益發(fā)放、安全風(fēng)控等場景。此外,IoT等場景下也有若干應(yīng)用。

整體特點

輕量性

  • 針對端側(cè)設(shè)備特點深度定制和裁剪,無任何依賴,可以方便地部署到移動設(shè)備和各種嵌入式設(shè)備中。
  • IOS平臺:armv7+arm64靜態(tài)庫大小5MB左右,鏈接生成可執(zhí)行文件增加大小620KB左右,metallib文件600KB左右。
  • Android平臺:so大小400KB左右,OpenCL庫400KB左右,Vulkan庫400KB左右。

通用性

  • 支持Tensorflow、Caffe、ONNX等主流模型文件格式,支持CNN、RNN、GAN等常用網(wǎng)絡(luò)。
  • 支持86個TensorflowOp、34個CaffeOp;各計算設(shè)備支持的MNN Op數(shù):CPU 71個,Metal 55個,OpenCL 29個,Vulkan 31個。
  • 支持iOS 8.0+、Android 4.3+和具有POSIX接口的嵌入式設(shè)備。
  • 支持異構(gòu)設(shè)備混合計算,目前支持CPU和GPU,可以動態(tài)導(dǎo)入GPU Op插件,替代CPU Op的實現(xiàn)。

高性能

  • 不依賴任何第三方計算庫,依靠大量手寫匯編實現(xiàn)核心運算,充分發(fā)揮ARM CPU的算力。
  • iOS設(shè)備上可以開啟GPU加速(Metal),常用模型上快于蘋果原生的CoreML。
  • Android上提供了OpenCL、Vulkan、OpenGL三套方案,盡可能多地滿足設(shè)備需求,針對主流GPU(Adreno和Mali)做了深度調(diào)優(yōu)。
  • 卷積、轉(zhuǎn)置卷積算法高效穩(wěn)定,對于任意形狀的卷積均能高效運行,廣泛運用了 Winograd 卷積算法,對3x3 -> 7x7之類的對稱卷積有高效的實現(xiàn)。
  • 針對ARM v8.2的新架構(gòu)額外作了優(yōu)化,新設(shè)備可利用半精度計算的特性進一步提速。
輕量級的深度神經(jīng)網(wǎng)絡(luò)推理引擎MNN

 

易用性

  • 有高效的圖像處理模塊,覆蓋常見的形變、轉(zhuǎn)換等需求,一般情況下,無需額外引入libyuv或opencv庫處理圖像。
  • 支持回調(diào)機制,可以在網(wǎng)絡(luò)運行中插入回調(diào),提取數(shù)據(jù)或者控制運行走向。
  • 支持只運行網(wǎng)絡(luò)中的一部分,或者指定CPU和GPU間并行運行。

架構(gòu)設(shè)計

輕量級的深度神經(jīng)網(wǎng)絡(luò)推理引擎MNN

 

MNN可以分為Converter和Interpreter兩部分。

Converter由Frontends和Graph Optimize構(gòu)成。前者負責(zé)支持不同的訓(xùn)練框架,MNN當(dāng)前支持Tensorflow(Lite)、Caffe和ONNX(PyTorch/MXNet的模型可先轉(zhuǎn)為ONNX模型再轉(zhuǎn)到MNN);后者通過算子融合、算子替代、布局調(diào)整等方式優(yōu)化圖。

Interpreter由Engine和Backends構(gòu)成。前者負責(zé)模型的加載、計算圖的調(diào)度;后者包含各計算設(shè)備下的內(nèi)存分配、Op實現(xiàn)。在Engine和Backends中,MNN應(yīng)用了多種優(yōu)化方案,包括在卷積和反卷積中應(yīng)用Winograd算法、在矩陣乘法中應(yīng)用Strassen算法、低精度計算、Neon優(yōu)化、手寫匯編、多線程優(yōu)化、內(nèi)存復(fù)用、異構(gòu)計算等。

輕量級的深度神經(jīng)網(wǎng)絡(luò)推理引擎MNN

 

用法

輕量級的深度神經(jīng)網(wǎng)絡(luò)推理引擎MNN

 

如上圖所示,在端側(cè)應(yīng)用MNN,大致可以分為三個階段:

  • 訓(xùn)練

在訓(xùn)練框架上,根據(jù)訓(xùn)練數(shù)據(jù)訓(xùn)練出模型的階段。雖然當(dāng)前MNN也提供了訓(xùn)練模型的能力,但主要用于端側(cè)訓(xùn)練或模型調(diào)優(yōu)。在數(shù)據(jù)量較大時,依然建議使用成熟的訓(xùn)練框架,如TensorFlow、PyTorch等。除了自行訓(xùn)練外,也可以直接利用開源的預(yù)訓(xùn)練模型。

  • 轉(zhuǎn)換

將其他訓(xùn)練框架模型轉(zhuǎn)換為MNN模型的階段。MNN當(dāng)前支持Tensorflow(Lite)、Caffe和ONNX的模型轉(zhuǎn)換。模型轉(zhuǎn)換工具可以參考編譯文檔和使用說明。支持轉(zhuǎn)換的算子,可以參考算子列表文檔;在遇到不支持的算子時,可以嘗試自定義算子,或在Github上給我們提交issue。

此外,模型打印工具可以用于輸出模型結(jié)構(gòu),輔助調(diào)試。

除模型轉(zhuǎn)換外,MNN也提供了模型量化工具,可以對浮點模型進行量化壓縮。

  • 推理

在端側(cè)加載MNN模型進行推理的階段。端側(cè)運行庫的編譯請參考各平臺的編譯文檔:iOS、Android、linux/macOS/Ubuntu、windows。我們提供了API接口文檔,也詳細說明了會話創(chuàng)建、數(shù)據(jù)輸入、執(zhí)行推理、數(shù)據(jù)輸出相關(guān)的接口和參數(shù)。

此外,測試工具和benchmark工具也可以用于問題定位。

分享到:
標(biāo)簽:神經(jīng)網(wǎng)絡(luò)
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定