簡單開發板+一根神經計算棒帶您走進人工智能的世界

佈景

剛過去的2017年, 毫無疑問的成為了最火爆的前沿範疇。能夠判定,2018年乃至往後的至少5年內,這種氣勢必將繼續,而且節節攀高。什麼是人工智能?百度百科做了很多很專業的解釋,說得淺顯易懂點,人工智能就是要讓機器學會自主思考。

要做到這一步,其核心就是建立在大數據上的深度學習。大數據根本是依靠才智,才智越強的企業則越能供給機器學習的大而全、精而細的優質範本,而深度學習則依靠算法。打個淺顯點的比方,你能夠把人工智能看作是小孩養成記。決議小孩生長的高度,智商是一個因素,給小孩供給的生長環境(包含教育、資源等)則是另一個重要因素。對應過來,智商就如算法,生長環境等同於大數據,你能給機器供給多優異的算法,多豐厚優質的樣本事例數據,就根本決議了機器在人工智能上到達的高度。

人工智能需求一個支撐Linux體系的便攜式硬件渠道,如UP Board系列產品等,再加上一根 便能夠為那些想入門人工智能範疇的學生、從業者供給一種邊際核算的深度學習可行性,當然,要是有攝像頭等外設那無疑是如虎添翼。

硬件渠道建立:

1)1根神經核算棒(Neural Compute Stick,為便利,下文簡稱NCS)

簡單開發板+一根神經計算棒帶您走進人工智能的世界

2)1個搭載Ubuntu16.04體系版別的硬件渠道開發板。

簡單開發板+一根神經計算棒帶您走進人工智能的世界

簡單開發板+一根神經計算棒帶您走進人工智能的世界

開發板搭載USB3.0,與NCS上的USB3.0接口調配運用十分適宜,能完成較高的傳輸速率(USB3.0 5Gbps VS USB2.0高速480Mbps),在模型推理數據很大的情況下,開發板憑仗高性能和低功耗特色的Intel® 飛躍™、賽揚™ CPU和4GB/8GB LPDDR4及32GB/64GB/128GB eMMC使其優勢顯而易見。

軟件開發包:

· Neural Compute SDK(NCSDK)

· Neural Compute Application Zoo (NC App Zoo)

現在,網上能夠找到配套NCS運用的軟件開發包首要有上面兩個,放在Github上,用戶很簡單獲取到,NCSDK歸於官方供給發佈的,很威望,裡邊包含了軟件東西、API以及例程等材料,經過對這幾個東西以及API的理解能夠有效的瞭解NCS的作業原理;NC App Zoo是一個讓用戶能夠共享自己運用NCS做的一些運用、模型的當地,這兒首要講下NCSDK中的幾個重要的東西。

軟件東西首要包含了mvNCCompile、mvNCProfile以及mvNCCheck:

· mvNCCompile是將Caffe/TF模型轉換為NCS可辨認的graph文件

· mvNCProfile是供給每層的數據用於評估Caffe/TF網絡模型在NCS上的運轉功率,輔佐開發者優化網絡模型結構

· mvNCCheck是經過在NCS和Caffe/TF上運轉網絡比較揣度的成果

API則是NCS核算神經棒的硬件調用接口,經過練習得到的網絡模型能夠運用mvNCCompile東西編譯為能被NCS辨認的graph文件,經過調用API,NCS能夠經過USB接口便利的與主機通訊,NCS利用練習好的網絡模型核算出圖畫剖析的成果,並傳輸到主機上,完成推理作業。

簡單開發板+一根神經計算棒帶您走進人工智能的世界

值得一提的是,官方供給的API一起支撐C/C++以及Python言語,讓用戶靈敏挑選自己瞭解的編程言語。別的,也從官方供給的SDK中發現,現在SDK中首要支撐Caffe以及Tensorflow兩種深度學習框架。

在運用開發板建立硬件渠道時還有個小插曲,原本想圖省勁,直接運用主機中的Ubilinux體系,不過在裝置的時分發現官方供給的SDK不支撐這個體系版別,無法仍是依照官方要求老老實實運用指定的Ubuntu 16.04版別。

簡單開發板+一根神經計算棒帶您走進人工智能的世界

在Ubuntu16.04體系中,翻開命令終端窗口,運用git獲取NCSDK,假如初度裝置運用Ubuntu 16.04體系,還需求你裝置git東西。

簡單開發板+一根神經計算棒帶您走進人工智能的世界

另一個問題,開發東西,不管你是需求學習或者開發根據Caffe或者Tensorflow深度學習框架,都需求裝置相應的開發東西,這些網上都有相應的教程,點到為止。

簡單開發板+一根神經計算棒帶您走進人工智能的世界

能夠看到,NCS配套的SDK中現已集成了一些網絡模型,例如GoogLeNet, AlexNet,SqueezeNet等,能夠直接拿來運用,開發者也能夠運用自己練習的網絡模型,只需這些網絡模型與NCS支撐的網絡層匹配,當然,這要求自身有深度學習模型開發的根底了。

下面就以一個實例來了解下NCS怎麼加快推理作業的,在咱們平時的運用中,也有不少開發者直接選用像樹莓派等開源硬件渠道套上CNN模型做圖畫辨認等功能,可是會發現佔用很多的CPU資源,CPU處於負荷狀況且辨認進程比較慢,假如運用NCS又會怎麼呢?筆者隨意在百度上查找了幾張動物的圖片進行辨認測驗。

簡單開發板+一根神經計算棒帶您走進人工智能的世界

由於網絡模型比較多,這兒選取了Alexnet的模型做修正。

簡單開發板+一根神經計算棒帶您走進人工智能的世界

修正run.py文件中辨認圖片途徑。

簡單開發板+一根神經計算棒帶您走進人工智能的世界

第一張圖片辨認成果:

簡單開發板+一根神經計算棒帶您走進人工智能的世界

第二張圖片辨認成果:

簡單開發板+一根神經計算棒帶您走進人工智能的世界

第三張圖片辨認成果:

簡單開發板+一根神經計算棒帶您走進人工智能的世界

第四張圖片辨認成果:

簡單開發板+一根神經計算棒帶您走進人工智能的世界

能夠發現,在辨認是什麼物種的時分仍是十分精確的,至少知道了是貓、狗、馬、虎,可是在詳細是什麼物種中的什麼類型就難說了。究竟,即便是一個人,不瞭解這個物種,你也不知道它詳細歸於華南虎仍是東北虎。其中有一點需求留意的,除了第一張圖片歸於正面照,其它幾張圖片都是旁邊面照,從辨認的成果判別也不難發現,旁邊面照辨認的難度要遠勝於正面照,當然也可能是樣本有限的緣故。不過,這個模型至少應證了一件事,在有NCS加持的情況下,一般核算機在辨認圖畫的時分的確現已超過了人。其它例程在本文就不演示了。

小結

神經核算棒(NCS)的確是一個不錯的深度學習開發東西,能夠協助開發者剖析、調試、驗證神經網絡,併為深度學習做推理加快,其首要優勢在於開發和優化AI的離線運用。開發板 + 的組合現已讓筆者才智到了深度學習在圖畫辨認範疇中的優勢,NCS神經核算棒結合Intel供給的NCSDK組合又能讓開發者輕鬆入門 ,一句話,其實入門AI並沒有幻想的那麼難,您短缺的僅僅一個渠道。


分享到:


相關文章: