深度學習不不只僅是理論創新,更重要的是應用於工程實際。python
關於深度學習人工智能落地,已經有有不少的解決方案,不管是電腦端、手機端仍是嵌入式端,將已經訓練好的神經網絡權重在各個平臺跑起來,應用起來纔是最實在的。ios
(caffe2-ios:https://github.com/KleinYuan/Caffe2-iOS)git
這裏簡單談談就在2018年咱們通常深度學習落地的近況。github
Opencv相比你們都比較瞭解,很流行很火的開源圖像處理庫,人工智能深度學習大夥,Opencv天然不能落下。早在去年Opencv開始加入Dnn模塊,而且一直更新,可是有點須要注意,Opencv
的深度學習模塊是用來inference
推斷而不是用來訓練的。windows
爲何,由於如今已經存在不少優秀的深度學習框架了(TensorFlow、Pytorch),Opencv只須要管好能夠讀取訓練好的權重模型進行推斷就足夠了。網絡
(opencv-4.0.0已經發布)多線程
本身試着跑了一下Opencv版的yolov3,利用yolo官方訓練好的權重,讀取權重而且利用Opencv的前向網絡運行——速度還能夠,在i5-7400 CPU上推斷用了600+ms。框架
而我用2017版MacBookPro-2.3GHz版本的CPU(i5-7260u)則跑了500ms。要知道這是徹底版本的yolo-v3。若是進一步優化的話,在稍微好點的CPU端是能夠跑到10fps!分佈式
另外在learnopencv相關文章中,也有詳盡的評測:性能
在6核12線程的CPU中能夠跑到200ms,速度至關快了,並且優化的空間仍是有的。
爲何Opencv版的比Darknet版的速度快那麼多,是由於Opencv的Cpu端的op編寫過程當中利用了CPU-MKL等不少優化庫,針對英特爾有着很好的優化,充分利用了多線程的優點(多線程很重要,並行計算比串行計算快不少)。
固然這些優化還不是盡頭,Opencv也在一直更新:
Opencv能夠做爲一個不錯的落地的深度學習推斷平臺,只要安裝好Opencv,就能夠跑深度學習代碼了,不須要安裝其餘深度學習框架了。可是有點須要注意,Opencv最好的實踐是CPU端,GPU端Opencv對cuda的支持不是很好,Opencv只有利用OpenCL支持GPU,但速度沒有cuda庫快。
Pytorch-v1.0的預覽版已經發布了,正式版應該是在國慶節的第一天發佈。
但咱們在觀察Pytorch的1.0文檔中已經能夠熟知,爲何Pytorch-v1.0稱爲從研究到生產:
最重要的三點:
簡單談談第三個要點,看了官方的說明文檔,Pytorch也作了相似於Opencv工做,新的Pytorch支持直接應用Pytorch的C++部分從而編譯能夠單獨執行Pytorch的推斷部分而不須要安裝全部Pytorch的組件。
近期會測試一下Pytorh和Opencv相比在Cpu端的速度,看看哪一個對CPU端的優化更好些。
IOS最大的看點就是:Iphone最新出來的A12仿生處理器!
5W億次每秒運行速度,跟專業顯卡比起來可能不算什麼,可是在手機端,意思可想而知。
只是不知道具體的速度如何,跑Yolo的話可不能夠實時,期待以後的測評吧。
不過在HomeCourt這款APP中(中國目前還不可使用),憑藉A12強大的性能,貌似能夠實時追蹤人體骨架。仍是很值得期待的。
至於安卓端,由於華爲的芯片尚未具體公佈,目前在移動端上的神經網絡框架大部分是用CPU跑。
速度快慢就看在arm端的優化如何了。
比較流行的兩個框架是ncnn(主要是cpu)和mace(也支持Gpu)。都在發展階段,前者出世1年左右,後者出世半年不到。
也期待一下吧!
深度學習落地,最繁瑣的莫過於配置各類環境,但願以後各大深度學習框架可以在落地這塊加大投入,實現快速方便地部署吧!
配一張Openpose的配置信息:
(OpenPose中對Windows的要求較爲苛刻)
想知道老潘是如何學習踩坑的,想與我交流問題~請關注公衆號「oldpan博客」。
老潘也會整理一些本身的私藏,但願能幫助到你們,點擊神祕傳送門獲取。