精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為什么加班的總是我:那個天天12點到崗的程序員,又準點下班陪女友了?!

人工智能
不懂NCNN的組件設計,即使一頓操作猛如虎,你可能最后也只有兩塊五。那它的組件是什么嘞?NCNN組件的設計理念是組件里不包含具體的業務邏輯,只包含對NCNN接口的封裝和調用。

作為我司頭發儲量前三的程序員始終仗著頭發多奮斗在加班的第一線時時靈魂拷問自己年輕人,你憑什么不加班?雖然我沒有女朋友

但是,我有代碼呀 

[[283573]] 

但我不明白的是,隔壁工位那個,到崗比我遲,下班比我早,天天準點兒下班接女朋友,工作還完成的不錯的樣子,當然,頭發也還不錯。除了長得比我顯老,難道他有什么制勝法寶嗎?趁著午休,以一禮拜咖啡為代價,我偷師了他的制勝法寶。

GET了秘訣,或許我也可以事業愛情雙豐收了。 

 

直接集成NCNN的缺點

直接集成NCNN熬老少男顏哇,想當年我一邊淚流滿面地集成,一邊想用女友的SK2給自己的臉補補(不,你沒有,both SK2和女友),咋回事兒呢,為SqueezeNet接入NCNN,把相關的模型文件,NCNN的頭文件和庫,JNI調用,前處理和后處理相關業務邏輯等。把這些內容都放在SqueezeNet Sample工程里。這樣簡單直接的集成方法,問題也很明顯,和業務耦合比較多,不具有通用性,前處理后處理都和SqueezeNcnn這個Sample有關,不能很方便地提供給其他業務組件使用。深入思考一下,如果我們把AI業務,作為一個一個單獨的AI組件提供給業務的同學使用,會發生這樣的情況: 

每個組件都要依賴和包含NCNN的庫,而且每個組件的開發同學,都要去熟悉NCNN的接口,寫C的調用代碼,寫JNI。所以我們很自然地會想到要提取一個NCNN的組件出來,提取以后呢長得順眼了很多,大概是這個樣子。 

 

AOE SDK里的NCNN組件

有了AOE SDK,我也可以一頓操作猛如虎了!在AOE開源SDK里,我們提供了NCNN組件,下面我們從4個方面來講一講NCNN組件:

  • NCNN組件的設計
  • 對SqueezeNet Sample的改造
  • 應用如何接入NCNN組件
  • 對NCNN組件的一些思考

NCNN組件的設計

不懂NCNN的組件設計,即使一頓操作猛如虎,你可能最后也只有兩塊五。那它的組件是什么嘞?NCNN組件的設計理念是組件里不包含具體的業務邏輯,只包含對NCNN接口的封裝和調用。具體的業務邏輯,由業務方在外部實現。在接口定義和設計上,我們參考了TF Lite的源碼和接口設計。目前提供的對外調用接口,長這個樣子:

  1. // 加載模型和param 
  2. void loadModelAndParam(...) 
  3. // 初始化是否成功 
  4. boolean isLoadModelSuccess() 
  5. // 輸入rgba數據 
  6. void inputRgba(...) 
  7. // 進行推理 
  8. void run(...) 
  9. // 多輸入多輸出推理 
  10. void runForMultipleInputsOutputs(...) 
  11. // 得到推理結果 
  12. Tensor getOutputTensor(...) 
  13. // 關閉和清理內存 
  14. void close() 

而機智騷年本人,用的是這個: 

  1. ├── AndroidManifest.xml 
  2. ├── cpp 
  3. │   └── ncnn 
  4. │       ├── c_api_internal.h 
  5. │       ├── include 
  6. │       ├── interpreter.cpp 
  7. │       ├── Interpreter.h 
  8. │       ├── jni_util.cpp 
  9. │       ├── jni_utils.h 
  10. │       ├── nativeinterpreterwrapper_jni.cpp 
  11. │       ├── nativeinterpreterwrapper_jni.h 
  12. │       ├── tensor_jni.cpp 
  13. │       └── tensor_jni.h 
  14. ├── java 
  15. │   └── com 
  16. │       └── didi 
  17. │           └── aoe 
  18. │               └── runtime 
  19. │                   └── ncnn 
  20. │                       ├── Interpreter.java 
  21. │                       ├── NativeInterpreterWrapper.java 
  22. │                       └── Tensor.java 
  23. └── jniLibs 
  24.     ├── arm64-v8a 
  25.     │   └── libncnn.a 
  26.     └── armeabi-v7a 
  27.         └── libncnn.a 
  • Interpreter,提供給外部調用,提供模型加載,推理這些方法。
  • NativeInterpreterWrapper是具體的實現類,里面對native進行調用。
  • Tensor,主要是一些數據和native層的交互。

AOE NCNN用的好,任務完成早,奧秘在此。

  • 支持多輸入多輸出。
  • 使用ByteBuffer來提升效率。
  • 使用Object作為輸入和輸出(實際支持了ByteBuffer和多維數組)。

光說不練假把式,AOE NCNN的實現過程,且聽我細細道來。

★ 如何支持多輸入多輸出

為了支持多輸入和多輸出,我們在Native層創建了一個Tensor對象的列表,每個Tensor對象里保存了相關的輸入和輸出數據。Native層的Tensor對象,通過tensor_jni提供給java層調用,java層維護這個指向native層tensor的“指針”地址。這樣在有多輸入和多輸出的時候,只要拿到這個列表里的對應的Tensor,就可以就行數據的操作了。

★ ByteBuffer的使用

ByteBuffer,字節緩存區處理子節的,比傳統的數組的效率要高。

DirectByteBuffer,使用的是堆外內存,省去了數據到內核的拷貝,因此效率比用ByteBuffer要高。

當然ByteBuffer的使用方法不是我們要說的重點,我們說說使用了ByteBuffer以后,給我們帶來的好處:

1.接口里的字節操作更加便捷,例如里面的putInt,getInt,putFloat,getFloat,flip等一系列接口,可以很方便的對數據進行操作。

2.和native層做交互,使用DirectByteBuffer,提升了效率。我們可以簡單理解為java層和native層可以直接對一塊“共享”內存進行操作,減少了中間的字節的拷貝過程。

★ 如何使用Object作為輸入和輸出

目前我們只支持了ByteBuffer和MultiDimensionalArray。在實際的操作過程中,如果是ByteBuffer,我們會判斷是否是direct buffer,來進行不同的讀寫操作。如果是MultiDimensionalArray,我們會根據不同的數據類型(例如int, float等),維度等,來對數據進行讀寫操作。

★ 對SqueezeNet Sample的改造

集成AOE NCNN組件以后,讓SqueezeNet依賴NCNN Module,SqueezeNet Sample里面只包含了模型文件,前處理和后處理相關的業務邏輯,前處理和后處理可以用java,也可以用c來實現,由具體的業務實現來決定。新的代碼結構變得非常簡潔,目錄如下:

  1. ├── AndroidManifest.xml 
  2. ├── assets 
  3. │   └── squeeze 
  4. │       ├── model.config 
  5. │       ├── squeezenet_v1.1.bin 
  6. │       ├── squeezenet_v1.1.id.h 
  7. │       ├── squeezenet_v1.1.param.bin 
  8. │       └── synset_words.txt 
  9. └── java 
  10.     └── com 
  11.         └── didi 
  12.             └── aoe 
  13.                 └── features 
  14.                 │       ├── squeezenet_v1.1.id.h 
  15. │       ├── squeezenet_v1.1.param.bin 
  16. │       └── synset_words.txt 
  17. └── java 
  18.     └── com 
  19.         └── didi   
  20.          └── aoe 
  21.                 └── features 
  22.                     └── squeeze 
  23.                         └── SqueezeInterpreter.java 

↑ 本Sample也適用于其他的AI業務組件對NCNN組件的調用。

(牛逼就完事兒)

★ 應用如何接入NCNN組件

對NCNN組件的接入,有兩種方式

●直接接入 

 

●通過AOE SDK接入

 

▲兩種接入方式比較: 

 

不BATTLE了,我單方面宣布,AOE SDK完勝!

★ 對NCNN組件的總結和思考

通過對NCNN組件的封裝,現在業務集成NCNN更加快捷方便了。之前我們一個新的業務集成NCNN,可能需要半天到一天的時間。使用AOE NCNN組件以后,可能只需要1-2小時的時間。當然NCNN組件目前還存在很多不完善的地方,我們對NCNN還需要去加深學習和理解。后面會通過不斷的學習,持續的對NCNN組件進行改造和優化。 

 

責任編輯:龐桂玉 來源: 普惠出行產品技術
相關推薦

2019-10-24 09:32:51

程序員python語言

2014-08-15 11:07:09

程序員

2018-09-10 09:18:30

程序員領導加班

2011-04-19 09:59:47

工資程序員

2017-11-10 10:18:42

程序員

2013-01-14 09:36:54

程序員程序員價值

2020-06-28 14:36:27

程序員技能開發者

2017-12-11 09:27:14

2012-08-07 09:24:57

程序員項目

2020-11-09 10:25:32

數據分析雙十一手機

2014-06-05 09:28:26

項目開發程序員

2015-08-11 09:18:44

程序員最好

2017-07-26 10:57:29

程序員加班原因

2020-12-02 10:37:35

程序員java開發

2023-07-18 19:11:21

配置信令系統

2020-11-23 08:31:02

程序員加班互聯網

2013-03-19 10:18:07

程序員

2019-03-11 08:56:50

程序員美國工作

2020-05-13 09:03:14

Python開發代碼

2018-07-24 11:21:25

程序員加班月薪
點贊
收藏

51CTO技術棧公眾號

亚洲一区二区三区视频在线 | wwwxx欧美| 91porn在线视频| 日韩最新av| 亚洲h在线观看| 日韩免费av一区二区三区| 亚洲永久精品视频| 很黄很黄激情成人| 亚洲成人网av| 欧美日韩亚洲自拍| av文字幕在线观看| 波多野结衣中文一区| 国产精品jizz在线观看麻豆| √天堂中文官网8在线| 成人性生交大片免费看中文视频| 在线看国产一区| 成人在线免费观看网址| 免费播放片a高清在线观看| 蜜臀av一区二区在线免费观看| 麻豆乱码国产一区二区三区| 日本japanese极品少妇| 玖玖精品在线| 五月天亚洲精品| 一区精品在线| 免费在线视频你懂得| 国产一区二区影院| 91福利精品视频| 麻豆md0077饥渴少妇| 日本免费一区二区三区最新| 欧美午夜在线| 国产亚洲欧洲高清| 稀缺小u女呦精品呦| 欧美伊人亚洲伊人色综合动图| 久久在线观看免费| 538国产精品视频一区二区| 999福利视频| 私拍精品福利视频在线一区| 欧美一区二区国产| 日本人视频jizz页码69| 久久国产一级片| 国外成人免费视频| 国产精品激情av在线播放| 五月婷婷婷婷婷| 少妇的滋味中文字幕bd| 免费成人在线电影| 一区二区三区中文字幕精品精品 | 1313精品午夜理伦电影| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美国产综合在线| 在线免费av导航| 中文字幕一区二区三区不卡| 亚洲视频欧美在线| 国产日本在线观看| 久久久国产精品麻豆| 精品日韩美女| 无码国产伦一区二区三区视频| 久久99精品久久久久久| 国产欧美精品一区二区| 亚洲天堂视频在线播放| 日韩精品乱码av一区二区| 国产91精品在线播放| 成人精品在线看| 欧美精选在线| 欧美激情精品久久久| 久久久久久蜜桃| 国产精品www994| 欧美激情综合亚洲一二区| 国产a免费视频| 欧美天天在线| 久久久久久久久久久成人| 久久老司机精品视频| 亚洲电影在线| 日韩美女在线观看| 国产99久久久久久免费看| 日本不卡的三区四区五区| 国产女精品视频网站免费| 在线观看中文字幕码| 久久机这里只有精品| 中文字幕亚洲天堂| 999福利视频| 自拍欧美日韩| 亚洲美女av在线| 无码国产69精品久久久久同性| 国产成人ay| 精品国产露脸精彩对白| 成熟妇人a片免费看网站| 欧美激情极品| 这里只有精品视频| 国产乱国产乱老熟300| 国产精品v一区二区三区| 欧美亚洲激情视频| 最近中文字幕av| 国产伦理精品不卡| 国产一区二区在线观看免费播放 | 亚洲色图18p| 中国美女黄色一级片| 欧美1区3d| 欧美在线观看网站| 91丨九色丨蝌蚪丨对白| 成人一区在线看| 欧美xxxx黑人又粗又长精品| 麻豆影视国产在线观看| 亚洲一区在线观看网站| 成年人免费在线播放| 自拍偷拍欧美日韩| 精品视频久久久| 中文字幕一二三| 亚洲精品555| 日韩欧美国产精品一区| 日韩精品卡通动漫网站| 亚洲香蕉av| 国产aaa精品| 狠狠躁夜夜躁av无码中文幕| 中文字幕国产一区二区| 日本免费高清一区| 日av在线播放| 亚洲欧美日韩电影| 欧美二区在线视频| 久久av网站| 中文字幕视频在线免费欧美日韩综合在线看| 国产一级二级毛片| 国产在线播放一区| 日韩在线观看电影完整版高清免费| 中文字幕资源网在线观看| 欧美中文字幕不卡| 欧美成人午夜精品免费| 亚洲精品国产日韩| 97超碰人人看人人| 欧美性videos| 欧美综合一区二区| 欧美做受xxxxxⅹ性视频| 精品av久久久久电影| 91综合免费在线| 欧美欧美欧美| 婷婷夜色潮精品综合在线| 久草青青在线观看| 91国内精品白嫩初高生| 三级精品视频久久久久| 亚洲久久久久久| 99精品在免费线中文字幕网站一区 | 在线天堂中文字幕| 伊人天天综合| 成人伊人精品色xxxx视频| 免费资源在线观看| 精品国产91久久久| 精品人妻一区二区免费| 色婷婷热久久| 欧美精品情趣视频| 中文 欧美 日韩| 久久这里只有精品视频网| 蜜臀av色欲a片无码精品一区| 日韩毛片免费视频一级特黄| 亚洲午夜未满十八勿入免费观看全集| 久热精品在线观看| 国产一区二区三区免费| 亚洲人久久久| 亚洲成人激情社区| 国产亚洲精品一区二区| 国产超碰人人爽人人做人人爱| 国产福利电影一区二区三区| 亚洲va国产va天堂va久久| 91在线品视觉盛宴免费| 色成年激情久久综合| 欧美 变态 另类 人妖| 国产精品免费看| 国语精品中文字幕| 免费高潮视频95在线观看网站| 精品国产一区二区三区不卡 | re久久精品视频| 日本精品免费一区二区三区| 天堂在线中文字幕| 色综合天天综合在线视频| 国产二级一片内射视频播放| 国产日韩欧美| 青青草成人网| 日本精品在线一区| 自拍偷拍亚洲一区| 中文字字幕在线观看| 国产精品麻豆99久久久久久| 三日本三级少妇三级99| 欧美在线三区| 99国产超薄肉色丝袜交足的后果 | aaa亚洲精品| 成人中文字幕在线播放| 神马久久av| 国产成人福利视频| 黄色在线视频网站| 日韩精品在线一区二区| 日韩激情一区二区三区| 2024国产精品| 欧美成人福利在线观看| 高清日韩欧美| 亚洲欧美国产日韩天堂区| 国产剧情在线视频| 国产精品久久免费看| 久久精品视频在线观看免费| 激情久久综合| 亚洲图片小说在线| 日韩视频一二区| 性亚洲最疯狂xxxx高清| 做爰视频毛片视频| 亚洲日韩欧美一区二区在线| av电影中文字幕| 日韩国产在线观看一区| 好色先生视频污| 青青视频一区二区| 国产成人精品av| av网站在线看| 日韩成人在线视频| 伊人网中文字幕| 亚洲高清不卡在线| 国产综合精品在线| 亚洲综合二区| 亚洲v日韩v欧美v综合| 欧美丝袜足交| 成人网在线免费观看| 亚洲同志男男gay1069网站| 啊v视频在线一区二区三区| 亚洲黄色在线播放| 欧美在线看片a免费观看| 国产网友自拍视频| 国产精品高潮呻吟久久| 日韩av手机在线播放| 久久99最新地址| 欧美日韩在线视频一区二区三区| 在线电影一区二区| 欧美重口乱码一区二区| 亚洲日本视频在线| 国产精品美女在线| 国产污视频在线播放| 日韩一区二区av| 亚欧洲精品视频| 日韩午夜三级在线| 亚洲天堂中文字幕在线| 日韩欧美在线中文字幕| 日韩在线观看视频一区二区| 国产视频911| 波多野结衣有码| 国产精品综合久久| 久久久久久久久久一区| 热久久一区二区| 欧美日韩第二页| 亚洲精选在线| 日韩国产成人无码av毛片| 欧美成人自拍| 中文字幕中文字幕99| 日韩av在线播放网址| 麻豆久久久av免费| 东京久久高清| 成人欧美一区二区| 久久aimee| 国产高清一区视频| 成人看片黄a免费看视频| 91色中文字幕| 日韩激情综合| 亚洲伊人成综合成人网| 成人日韩视频| 国产精品视频自拍| 高清av不卡| 日本91av在线播放| 91九色在线看| 欧美壮男野外gaytube| 欧美成人影院| 国产a∨精品一区二区三区不卡| av有码在线观看| 91产国在线观看动作片喷水| 国产高潮在线| 欧洲成人在线视频| 在线看欧美视频| 91在线无精精品一区二区| 国产aⅴ精品一区二区四区| 成人亲热视频网站| 深夜福利一区| 99电影网电视剧在线观看| 成人国产精品一区二区网站| 91在线无精精品一区二区| 一区二区在线视频观看| 国产一级精品aaaaa看| 天天躁日日躁成人字幕aⅴ| 免费试看一区| 成人国产精品一级毛片视频| 福利视频一区二区三区| 超碰在线一区| 欧美精品久久久| 日本精品黄色| 亚洲三区视频| 狠狠色丁香久久综合频道| 国自产拍偷拍精品啪啪一区二区| 精品欧美久久| 亚洲一卡二卡三卡| 婷婷综合亚洲| 黄色免费视频大全| 日本中文在线一区| 亚洲午夜精品一区| 成人激情小说网站| 国产又黄又粗又猛又爽的 | www.99re6| 亚洲夂夂婷婷色拍ww47| 午夜一级黄色片| 在线不卡中文字幕播放| 亚洲精品国偷拍自产在线观看蜜桃| 亚洲精品久久久久国产| √新版天堂资源在线资源| 九色91av视频| 国产精品一区二区av影院萌芽| 国产欧美精品久久久| 要久久爱电视剧全集完整观看 | 精品免费一区二区| 黄色一级大片免费| 男人的天堂亚洲| 午夜视频在线网站| 99国产精品国产精品毛片| 日日碰狠狠添天天爽| 狠狠色狠色综合曰曰| 91亚洲欧美激情| 国产视频精品免费播放| 国内精品久久久久久野外| 欧美重口另类videos人妖| 韩国三级大全久久网站| 农村寡妇一区二区三区| 66国产精品| 精品视频免费在线播放| 国产黄色精品视频| 美国一级黄色录像| 精品美女国产在线| 黑人乱码一区二区三区av| 精品国产欧美一区二区三区成人| 欧美一级鲁丝片| 国产在线拍揄自揄视频不卡99 | 亚洲经典三级| 女同激情久久av久久| 久久综合999| 草视频在线观看| 日韩西西人体444www| 在线免费黄色| 欧美自拍视频在线观看| 网友自拍一区| 欧美一区二区视频在线播放| 久久激情综合网| 精品人妻中文无码av在线| 久久久久99精品国产片| 久久久精品国产sm调教网站| 欧美人与禽zozo性伦| 在线免费观看中文字幕| 精品亚洲一区二区三区在线播放 | 国产精品传媒在线观看| 日韩成人在线视频| 国产区在线看| 91在线精品播放| 国产精品伦理久久久久久| 婷婷丁香激情网| 26uuu欧美| 西西44rtwww国产精品| 亚洲国产精品中文| 欧美aaa免费| 国产精品二区三区四区| 欧美视频久久| 国产免费a级片| 亚洲三级在线免费观看| 国产丝袜在线视频| 久久精品国产2020观看福利| 欧美特黄色片| 亚洲欧美精品| 久久国产精品区| 永久av免费网站| 欧美一区二区在线不卡| 久久免费电影| 国产自产在线视频一区| 99精品国产在热久久| 一起草在线视频| 狠狠干狠狠久久| 成人精品一区二区三区校园激情| 国产激情999| 日本欧美国产| 麻豆免费在线观看视频| 亚洲综合色婷婷| 男人的天堂a在线| 欧美一级淫片videoshd| 国产欧美日韩一区二区三区四区| www.国产区| 国产精品国产三级国产a| 亚洲精品一区二区三区区别 | 精品一区久久久| 久久一区激情| 久久日免费视频| 欧美一区二区三区免费在线看| 性国产高清在线观看| 精品国产乱码久久久久久郑州公司 | www深夜成人a√在线| 日韩精品中文字幕一区二区三区| 春色校园综合激情亚洲| 亚洲人体一区| 高清av一区二区| 日批视频免费在线观看| 欧美理论片在线观看| 亚州国产精品| 性chinese极品按摩| 性欧美大战久久久久久久久| 国产视频网站在线| 亚洲xxxxx|