精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久久成人av毛片免费观看| 亚洲 欧美 激情 另类| 精品久久影院| 欧美一区二区三区在线电影| 中文字幕人妻熟女人妻洋洋| 日本中文字幕电影在线观看| 久久成人18免费观看| 欧美疯狂xxxx大交乱88av| 国产精品一级黄片| a一区二区三区亚洲| 亚洲国产日韩一级| 亚洲高清资源综合久久精品| 精品国产无码一区二区三区| 亚洲欧美日韩精品一区二区| 久久黄色av网站| 国产艳俗歌舞表演hd| **国产精品| 欧美日韩国产精品| dy888午夜| 久久国产精品高清一区二区三区| 国产毛片精品国产一区二区三区| 欧美有码在线视频| 波多野结衣在线网址| 天堂99x99es久久精品免费| 在线播放/欧美激情| 虎白女粉嫩尤物福利视频| 秋霞午夜在线观看| 久久久www成人免费无遮挡大片| 国产日韩精品入口| 无码人妻一区二区三区线| 国内综合精品午夜久久资源| 日日噜噜噜夜夜爽亚洲精品| 免费在线观看你懂的| 国产精品久一| 欧美日韩极品在线观看一区| 黄在线观看网站| 毛片大全在线观看| 亚洲人成网站影音先锋播放| 日韩一区二区三区高清| 亚洲欧美日韩动漫| 顶级嫩模精品视频在线看| 国产精品视频一区国模私拍| 日韩激情在线播放| 午夜久久美女| 欧美福利在线观看| av资源在线免费观看| 小说区图片区色综合区| 亚洲精品白浆高清久久久久久| 无套白嫩进入乌克兰美女| 久久xxx视频| 在线视频综合导航| 免费男同深夜夜行网站| 欧美成人资源| 日韩人体视频一二区| 777精品久无码人妻蜜桃| 欧美hdxxxxx| 亚洲国产一区二区视频| 妺妺窝人体色www看人体| 国产黄a三级三级三级av在线看 | 亚洲一级二级在线| 国产一级片91| 国产极品人妖在线观看| 亚洲国产三级在线| 色欲av无码一区二区人妻| 在线天堂资源www在线污| 欧美丝袜第一区| 激情综合网婷婷| 久久夜夜操妹子| 欧美色图一区二区三区| 午夜精品久久久久久久99热影院| 日韩精品一级毛片在线播放| 欧美精品v日韩精品v韩国精品v| 手机免费av片| 国产精品欧美大片| 亚洲片在线资源| 国产成人免费观看网站| 999国产精品视频| 久久99久久亚洲国产| 可以免费看的av毛片| 日日夜夜免费精品视频| 国产精品一区二区女厕厕| av高清一区二区| 不卡的av电影在线观看| 日韩欧美精品一区二区三区经典| 2017亚洲天堂1024| 亚洲三级视频在线观看| 国产真人做爰毛片视频直播| 樱桃视频成人在线观看| 欧美精品一二三| youjizz.com日本| 深爱激情综合网| 久久精品视频在线观看| 日韩伦理在线视频| 青娱乐精品视频| av在线不卡观看| 韩国中文字幕2020精品| 亚洲免费av在线| 成年网站在线免费观看| 福利一区三区| 亚洲毛片在线观看| 真实国产乱子伦对白在线| 亚洲男女自偷自拍| 亚洲aⅴ男人的天堂在线观看 | 东京热一区二区三区四区| 久久国内精品视频| 久久99精品久久久久子伦| 日韩伦理在线观看| 欧美午夜久久久| 成人不卡免费视频| 精品在线观看入口| 欧美激情一区二区久久久| 一级一级黄色片| 99精品视频免费在线观看| 懂色av一区二区三区四区五区| 6699嫩草久久久精品影院| 欧美精品视频www在线观看| 亚洲av无码成人精品国产| 欧美一区精品| 国产精品一区av| 岛国最新视频免费在线观看| 亚洲午夜久久久久| av中文字幕网址| 日韩av久操| 日本中文字幕久久看| 人妻妺妺窝人体色www聚色窝| 日韩美女视频一区| 色婷婷狠狠18| 精品福利久久久| 欧美性做爰毛片| 人成网站在线观看| 亚洲大片精品永久免费| 日韩精品xxx| 亚洲乱码在线| 成人a视频在线观看| 国产精品四虎| 在线影视一区二区三区| 男男做爰猛烈叫床爽爽小说 | 欧美日韩国产123| 国产女人高潮时对白| 国产欧美一区二区精品秋霞影院| 奇米精品一区二区三区| 久久99偷拍| 久久久久久国产精品三级玉女聊斋| 一级黄色a视频| 中日韩免费视频中文字幕| 无码少妇一区二区三区芒果| 精品一区亚洲| 国产精品你懂得| av网站在线免费观看| 在线区一区二视频| 手机看片日韩av| 六月婷婷色综合| 在线观看福利一区| 精品一区视频| 色综合久久久久久中文网| 亚洲成人黄色片| 亚洲综合激情网| 精品无码人妻少妇久久久久久| 亚洲特色特黄| 久久66热这里只有精品| 网友自拍亚洲| 日韩中文字幕精品视频| 国产女人高潮毛片| 午夜久久福利影院| 国产精品jizz| 蜜臀av一区二区| 日韩国产精品毛片| 97久久精品| 日韩免费不卡av| 久操视频在线免费播放| 精品国产污污免费网站入口| 亚洲欧美在线视频免费| 久久这里只精品最新地址| 精品久久久噜噜噜噜久久图片| 久久在线视频| 不卡的av一区| 成人性教育av免费网址| 最近免费中文字幕视频2019| 国产三区在线播放| 天天综合色天天综合| 亚洲一区二区三区日韩| 国产精品99久久久久| 男女视频网站在线观看| 成人免费在线播放| 超碰97人人在线| 欧美片第一页| 精品自在线视频| 欧美精品久久久久久久久久丰满| 欧美日韩精品欧美日韩精品 | 欧美中文字幕一区| 18岁成人毛片| 久久精品一区二区三区不卡牛牛| 1314成人网| 国产超碰人人模人人爽人人添| 成人免费视频免费观看| 亚洲黄色a v| 欧美先锋影音| 亚洲va韩国va欧美va精四季| 亚洲国产aⅴ精品一区二区| 国产不卡av在线免费观看| a视频在线免费看| 亚洲欧美中文另类| 亚洲av永久无码国产精品久久| 欧美性猛交xxxx乱大交极品| 99鲁鲁精品一区二区三区| 久久蜜桃av一区精品变态类天堂| 污污的视频免费观看| 亚洲在线观看| 久艹在线免费观看| 国产精品久久久久蜜臀| 欧美一级片免费观看| av自拍一区| 成人午夜一级二级三级| 成人天堂yy6080亚洲高清| 久久久久久久久久久91| 调教视频免费在线观看| 亚洲欧美国产精品专区久久| 国产女18毛片多18精品| 欧美日韩国产首页| 手机av免费观看| 欧美日韩国产限制| 久久精品视频8| 一区二区三区在线免费观看| 后入内射无码人妻一区| 国产区在线观看成人精品| 色天使在线视频| 高清在线观看日韩| 亚洲高清av一区二区三区| 蜜桃视频一区二区三区 | 蜜臀a∨国产成人精品| 漂亮人妻被中出中文字幕| 亚洲伦伦在线| 蜜臀av色欲a片无码精品一区| 欧美国产免费| 久久久无码中文字幕久...| 色综合天天综合网中文字幕| 日韩三级电影| 欧美色就是色| 亚洲 国产 欧美一区| 成人影视亚洲图片在线| 视频一区国产精品| 日韩理论电影| 在线丝袜欧美日韩制服| 欧美国产一区二区三区激情无套| 西游记1978| 久久亚洲专区| 在线视频一二三区| 欧美jjzz| 国产中文字幕乱人伦在线观看| 欧美三区在线| 久激情内射婷内射蜜桃| 亚洲永久免费| 一区二区成人网| 久久国产日韩欧美精品| 免费黄频在线观看| 国产精品中文有码| 国产二级一片内射视频播放| 99久久夜色精品国产网站| 亚洲精品中文字幕在线播放| 26uuu精品一区二区三区四区在线| 精品黑人一区二区三区观看时间| 2020国产精品自拍| 日本黄色小视频在线观看| 国产精品美女久久久久久久 | 偷窥少妇高潮呻吟av久久免费| 日本学生初尝黑人巨免费视频| 图片区日韩欧美亚洲| 日本黄色中文字幕| 欧美精选午夜久久久乱码6080| 精品区在线观看| 日韩av最新在线观看| 国产视频第一区| 欧美精品在线观看| 蜜桃视频www网站在线观看| 国产成人涩涩涩视频在线观看 | 欧美mv和日韩mv国产网站| 日本黄色免费视频| 一区二区亚洲精品国产| av大全在线| 国产91精品久久久| 综合久草视频| 欧美福利一区二区三区| 久久精品亚洲人成影院| 成人一区二区免费视频| 日产欧产美韩系列久久99| 色哟哟在线观看视频| 久久夜色精品一区| 青青草原在线免费观看视频| 欧美日韩国产在线看| 国产精品高潮呻吟AV无码| 亚洲国产精品久久久久秋霞不卡| а天堂8中文最新版在线官网| 欧美成人精品不卡视频在线观看| 日韩影院在线| 91日韩久久| 日韩1区在线| 久久美女福利视频| 国产成a人亚洲精品| 九九热免费在线| 婷婷成人综合网| 99国产精品久久久久久久成人 | 成人免费精品动漫网站| 欧美日韩一区二区免费在线观看 | 三级成人在线| 国产精品一区二区三区精品| 久久精品国产99久久| 国产免费一区二区视频| 精品亚洲porn| 青青青视频在线播放| 偷拍日韩校园综合在线| www.好吊色| 久久九九全国免费精品观看| 欧美日韩成人影院| 国产一区视频观看| 欧美日韩亚洲国产精品| 国产亚洲视频一区| 国产精品午夜久久| www.亚洲激情| 亚洲精品在线91| 波多野结衣在线播放| 91黄在线观看| 午夜精品毛片| 一级黄色录像在线观看| 久久精品视频一区二区三区| 国产福利拍拍拍| 精品国产麻豆免费人成网站| 黄网站免费在线播放| 国产精品一区二区三区免费视频| 你懂的一区二区三区| 霍思燕三级露全乳照| 国产a久久麻豆| 国产一级大片在线观看| 欧美不卡视频一区| 亚洲妇熟xxxx妇色黄| 91深夜福利视频| 欧美独立站高清久久| 国产精品区在线| 国产精品视频你懂的| 亚洲天堂久久久久| 日韩中文综合网| 久久久久久久久成人| 亚洲高潮无码久久| 国产成人免费视频精品含羞草妖精| 在线观看黄网址| 日韩一级成人av| 美女精品导航| 久久99精品国产99久久| 亚洲专区一区二区三区| 公侵犯人妻一区二区三区| 色成人在线视频| 91精品国产91久久久久游泳池| 国产精品美乳一区二区免费| 日韩系列欧美系列| 国产欧美精品一二三| 亚洲黄网站在线观看| 欧美自拍第一页| 欧美专区日韩视频| 精品日产免费二区日产免费二区| 黄色高清无遮挡| 亚洲国产精品二十页| 97人妻精品一区二区三区软件| 久久天堂电影网| 中文字幕一区图| 黄色片一级视频| 国产精品毛片高清在线完整版| 91成人国产综合久久精品| 欧美成人免费小视频| 猫咪成人在线观看| 啊啊啊国产视频| 一区二区三区资源| 色视频在线观看免费| 国产欧美精品日韩精品| 欧美~级网站不卡| 欧美黑人欧美精品刺激| 欧美日韩在线播放三区| 色在线视频网| 欧美日韩精品免费观看| 久久99精品一区二区三区| 久久久99精品| 亚洲片av在线| 欧美成人精品一级| 成人小视频在线看| 亚洲免费观看在线视频| 性xxxxbbbb| 91九色综合久久| 国产精品乱看| 天海翼在线视频| 日韩电影第一页| 中文幕av一区二区三区佐山爱| 欧美精品自拍视频| 91亚洲精品乱码久久久久久蜜桃| 中文字幕人妻丝袜乱一区三区| 欧美激情精品久久久久久大尺度| 蜜乳av综合| 三日本三级少妇三级99| 欧美日韩亚洲国产一区| 国产在线高清理伦片a| 久久综合一区二区三区| 国产高清精品久久久久| 日韩黄色片网站|