MNN下交叉編譯
android
參考:https://blog.csdn.net/Simplify_boy/article/details/105410235vim
https://blog.csdn.net/qq_37643960/article/details/99775939bash
Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR)session
MNN CMakeLists.txt
CMakelist.txt 設置MNN_ARM82爲ON (低精度須要的動態庫)
ui
ndk
vim ~/.bashrc
添加android-NDK
export ANDROID_NDK=/$(path)/android-ndk-r21
$(path)爲本身的路徑
source ~/.bashrc`
編譯
cd /path/to/MNN
./schema/generate.sh
cd MNN/project/android
mkdir build_64 && cd build_64 && ../build_64.sh
make -j4
使用動態庫
代碼設置
// 建立session須要的配置
MNN::ScheduleConfig config;
// 選擇Backend
config.type = MNN_FORWARD_CPU;
// 線程數
config.numThread = 2;
// 配置相應的Backend
BackendConfig backendConfig;
// 選擇低精度/通常配置計算
backendConfig.precision = BackendConfig::Precision_Low;
// 或者
// backendConfig.precision = BackendConfig::Precision_Normal;
config.backendConfig = &backendConfig;
android添加庫
public class MNNNetNative { // load libraries
static {
System.loadLibrary("MNN");
System.loadLibrary("MNN_Arm82");
System.loadLibrary("mnncore");
}
}
.net