1.8.3 用Paddle-Lite框架編譯與開發Android應用
1.7.3節和1.8.2節分別在iOS和Android平臺上編譯了mobile-deep-learning項目的Demo,并讓這兩個基本的深度學習Demo運行起來了。接下來,我們嘗試使用另一個移動端深度學習框架Paddle-Lite來打造一個簡單的圖像分類App。Paddle-Lite項目是Paddle-Mobile項目的升級版本,Paddle-Mobile項目是mobile-deep-learning項目的升級版本。為了防止代碼頻繁變動,筆者將書中出現的Paddle-Lite代碼壓縮并放到了博文視點的官網,可以通過掃描讀者服務中的二維碼查看。如果讀者想體驗最新版本的Paddle-Lite,可以直接到GitHub搜索查看。如果讀者想在項目中使用Paddle-Lite,還是建議下載其最新版。
編譯Paddle-Lite ARM CPU版本的Android so庫
首先,我們嘗試在OS X或Linux平臺上編譯一個Paddle-Lite的so庫,編譯好這個so庫以后,再搭建和開發Android應用程序。
從博文視點的官網上將Paddle-Lite源碼下載到本地:
git clone https://github.com/Paddle Paddle/Paddle-Lite.git
在Linux或OS X系統中交叉編譯Paddle-Lite庫的CPU版本so庫。
下載并解壓NDK壓縮文件到本地目錄(以OS X為例):
wget https://dl.google.com/android/repository/android-ndk-r18b-darwin-x86_64.zip
設置環境變量以確保能找到編譯工具鏈,下面的例子將環境變量臨時加到~/.bash_profile或者/etc/profile等環境初始化文件中了,更好的建議是加到系統環境變量中。
unzip android-ndk-r18b-darwin-x86_64.zip export NDK_ROOT="/usr/local/android-ndk-r18b"
環境變量設置完成以后,可以使用下面的命令檢查是否生效。
echo $NDK_ROOT
安裝cmake,需要安裝較高版本的,筆者使用的系統是OS X, cmake版本號是3.13.4。
brew install cmake
在Linux系統中,可以先下載cmake,然后再配置環境變量,并執行Bootstrap安裝,代碼如下。
wget https://cmake.org/files/v3.13/cmake-3.13.4.tar.gz tar -zxvf cmake-3.13.4.tar.gz cd cmake-3.13.4 ./bootstrap
make make install
cmake安裝完成以后,可以使用cmake --version檢查安裝是否成功。
有了可用的cmake和NDK之后,就可以進入Paddle-Lite的tools目錄執行編譯腳本了。下面是編譯Android版本的so庫的命令。
cd Paddle-Lite/tools/ sh build.sh android
這里還有一個可選項要提及。在開發設計早期,我們團隊深入討論了如何減小包體積,我們提出并實踐了很多方案,其中一項就是編譯選項可以根據網絡結構進行選擇,如果開發者使用的是常見的網絡結構,也想拿到一個更小體積的so庫,就可以添加神經網絡結構選項:
sh build.sh android googlenet
這樣能讓與googlenet不相關的op被忽略,從而讓so庫的體積變得更小。最后在Paddle-Lite/build/release/arm-v7a/build目錄下可以找到Paddle-Lite庫:
libPaddle-Lite.so
至此就順利完成了一次編譯,如果你想修改或優化Paddle-Lite的C++語言、匯編語言或其他語言的代碼,可以修改后自行編譯。C++部分的代碼開發建議使用Clion, iOS metal代碼的開發建議使用的IDE是Xcode。
- Learning Microsoft Azure Storage
- 并行數據挖掘及性能優化:關聯規則與數據相關性分析
- 數據中心建設與管理指南
- 教父母學會上網
- 80x86/Pentium微型計算機原理及應用
- DevOps:Continuous Delivery,Integration,and Deployment with DevOps
- 控制系統計算機仿真
- Storm應用實踐:實時事務處理之策略
- 筆記本電腦維修90個精選實例
- 零起點學西門子S7-200 PLC
- 學練一本通:51單片機應用技術
- The DevOps 2.1 Toolkit:Docker Swarm
- 計算機應用基礎實訓·職業模塊
- 大數據時代的調查師
- Eclipse全程指南