#PS:要轉載請註明出處,本人版權所有
#PS:這個只是 《 我自己 》理解,如果和你的
#原則相沖突,請諒解,勿噴
背景
深度學習的爆發期已經到了瓶頸了,爲啥這樣說,因爲沒有突破性的理論進展,都是靠着網絡更深、更廣,算力更強大來做相應的功能。至少在我的世界觀裏面是這樣的,雖然這樣的認知可能會有侷限性,或者說是錯誤的。
現在深度學習的方向已經不是以前的泡沫鼓吹了,而是落地,踏踏實實的把實驗室的東西轉換爲實際對社會有用的東西,這纔是深度學習的現在的實際情況。
要做相關的落地,在大部分應用場景來說,是不能夠直接弄臺服務器+GPU的方式來做相關的計算的,這樣部署維護和成本都是一個很大的問題,現在其實大部分的場景需要的是低成本、小型化。就現在來看,其實就是移動手機平臺和其他嵌入式板子平臺是一個主流的方向。比如,手機端的:換臉啊、表情啊、化妝啊等等;板卡端的:依託於人臉識別的廣告機啊、閘機啊等等。這裏面的核心就是要在這些小型設備上做相關的算法運算。
在這些小型設備上做運算,有一個問題就是算力的問題,這些小型設備功耗低、算力低,很可能就是算法表現比較差。還好,很多大佬在很久以前就考慮到這些問題了,出了很多硬件加速的東西。如:Nvidia的TX TK系列、瑞芯微的RK系列、HiSi的Hi3559,Hi3519,Hi3516系列以及其他的Android手機SOC裏面帶的相關的NPU等等。
所以,爲了把HiSi平臺的相關深度學習硬件加速功能用起來,我們得把HiSi的NNIE利用起來完成這個功能。
NNIE簡介
NNIE是 Neural Network Inference Engine 的 簡 稱 是 海思 媒體 S oC 中 專門針對神經網
絡特別是深度學習卷積神經網絡進行加速處理的硬件單元。----- 摘自hisi sdk svp部分《HiSVP開發指南.pdf》
NNIE 工作流程簡介
海思提供了一個NNIE Mapper的工具(Linux , Win都有)。由於NNIE只支持Caffe框架,我們需要的是把Caffe的模型轉換爲NNIE可以使用的模型。
在我們轉換的時候,需要我們提供一個NNIE轉換的配置文件,然後根據配置文件把相關的caffe模型轉換爲NNIE的模型。然後我們在板子上加載這個模型,調用相關的API就可以完成這個網絡的加速計算。
NNIE 環境搭建
工慾善其事必先利其器。NNIE最開始接觸的時候,我覺得賊難受,覺得很難。但是當你把環境配置好了,你就會覺得事半功倍,很舒服。
以下內容,我都是按照HISI SDK的SVP部分的《HI SVP開發指南.pdf》做的,只是由於時效性的原因,有些內容需要做一定的改變適應才行。
我這裏根據我的摸魚經驗,我建議萌新第一步,先把RuyiStudio配置起來,這裏面帶了所有和NNIE開發的工具。
RuyiStudio 簡介
以下是RuyiStudio官方介紹:
RuyiStudio 集成 windows 版 的 NNIE mapper 和 仿真庫, 具有 生成 NNIE wk 功能、 仿真
NNIE 功能,同時 具有 代碼 編輯、編譯、調試、執行 功能 、 網絡拓撲顯示、目標檢測畫
框、 向量 相似度 對比、 調試 定位 信息獲取等功能 。
RuyiStudio ----- MinGW安裝
這裏我建議選擇手動安裝,下載MinGW的對應版本,解壓到一個無中文路徑的目錄下。然後下載對應MinGW的msys,解壓到MinGW的根目錄下。這裏直接按照文檔給的內容走即可。這一步無明顯的坑。
RuyiStudio ----- Python 3.5 與CAFFE安裝
這一步是最坑的一步。所以這步我會一一按照文檔介紹說明。
這一步必須按照手動配置方式,一鍵腳本配置,我建議有能力的小夥伴使用,糾錯有難度。
-
按照文檔把RUYI_PYTHON_PATH環境變量添加到系統。ruyi_env_setup-2.0.28所在目錄定義爲PREFIX, 這裏添加的值爲PREFIX/python35;PREFIX/python35/Scripts;PREFIX/python35/Library/bin。這裏沒什麼坑,就是別有中文路徑就好。
-
然後把RUYI_PYTHON_PATH的值添加到PATH環境變量中去。沒坑這裏,注意按照文檔整就行了。
-
ruyi_env_setup-2.0.28所在目錄定義爲PREFIX,把PREFIX/python35\Lib\site-packages\caffe\python添加到PYTHONPATH的環境變量中去。
-
進入ruyi_env_setup-2.0.28\python_bat目錄,雙擊運行setup_download_python.bat。一般來說,你會報錯的,因爲anaconda的清華源已經被幹掉了,不排除以後恢復的可能性,所以,這裏又需要把清華源替換爲anaconda的官方源。
注意:把:setup_download_python.bat中的所有https://mirrors.tuna.tsinghua.edu.cn/anaconda連接替換爲https://repo.anaconda.com/。
列如:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/certifi-2016.2.28-py35_0.tar.bz2 替換後是 https://repo.anaconda.com/pkgs/free/win-64/certifi-2016.2.28-py35_0.tar.bz2 。這裏改完了,你可以雙擊這個腳本setup_download_python.bat下載相關的庫,這裏建議開代理下載,很慢,真的。
如果你以爲這樣就完了嗎?那是不可能的。當你上述腳本執行完後,其中有9個是下載失敗的。他們的連接特徵如下:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/win-64/jpeg-9b-vc14_2.tar.bz2
來至於anaconda/cloud部分的。都不得行,so,得去官方源找對應的9個內容,我把鏈接地址貼到下面,可能你們需要的版本不是下面連接所示,但是你可以訪問那個頁面,那個頁面包含所有的版本,選擇對應的版本即可,
https://anaconda.org/conda-forge/jpeg/9b/download/win-64/jpeg-9b-vc14_2.tar.bz2
https://anaconda.org/conda-forge/libpng/1.6.34/download/win-64/libpng-1.6.34-vc14_0.tar.bz2
https://anaconda.org/conda-forge/libtiff/4.0.9/download/win-64/libtiff-4.0.9-vc14_0.tar.bz2
https://repo.anaconda.com/cloud/conda-forge/win-64/zlib-1.2.11-vc14_0.tar.bz2
https://anaconda.org/conda-forge/tk/8.5.19/download/win-64/tk-8.5.19-vc14_1.tar.bz2
https://anaconda.org/conda-forge/openssl/1.0.2n/download/win-64/openssl-1.0.2n-vc14_0.tar.bz2
https://anaconda.org/conda-forge/icu/58.2/download/win-64/icu-58.2-vc14_0.tar.bz2
https://anaconda.org/conda-forge/qt/5.6.2/download/win-64/qt-5.6.2-vc14_1.tar.bz2
https://anaconda.org/conda-forge/protobuf/3.5.1/download/win-64/protobuf-3.5.1-py35_vc14_0.tar.bz2
如果以上所需的內容版本發生了變動,那麼訪問https://anaconda.org/conda-forge/,直接去查找需要包的關鍵字,選擇對應版本即可,如:jpeg ,搜索了後,選擇 排名第一的conda-forge / jpeg 9c源,然後進去選擇對應版本下載即可。這個網站有點卡,建議代理。如下圖:
所有的內容下載好了 ,開始下一步。 -
把上面下載的包放到ruyi_env_setup-2.0.28\python35目錄下,並全部解壓到ruyi_env_setup-2.0.28\python35目錄。
-
把ruyi_env_setup-2.0.28 目錄下的caffe.zip 放到ruyi_env_setup-2.0.28\python35\Lib\site-packages下解壓。
-
把opencv_python-3.4.0.12-cp35-cp35m-win_amd64.whl放到ruyi_env_setup-2.0.28\python35\Lib\site-packages ,然後在ruyi_env_setup-2.0.28\python35\Lib\site-packages目錄,執行pip install opencv_python-3.4.0.12-cp35-cp35m-win_amd64.whl安裝opencv
RuyiStudio-2.0.28.zip 解壓運行
打開RuyiStudio.exe得到如下的界面,常用的幾個點就如圖所示,至於怎麼完成後續工作。請看後續文章。
#PS:請尊重原創,不喜勿噴
#PS:要轉載請註明出處,本人版權所有.
有問題請留言,看到後我會第一時間回覆