本文将从获取一个训练好的 shufflenet_v2
模型出发, 讲解如何使用 MegEngine Lite 的 C++ 接口将其部署到 CPU(Linux x86 / Android Arm)环境下运行。主要分为以下小节:
参见:
MegEngine Lite 还可以 通过 Python 接口进行使用, 使用方便但有局限性。
导出已经训练好的模型获得用于 MegEngine Lite 推理的模型。
编写 Inference 代码从源码编译 MegEngine 中的介绍是一致的。
下面将演示在 Linux x86 下使用动态链接,Android Arm 上使用静态链接的流程:
-
首先需要 Clone 整个 MegEngine 工程,并进入到 MegEngine 的根目录:
git clone --depth=1 git@github.com:MegEngine/MegEngine.git
cd MegEngine
-
环境准备 & 执行编译:
Linux x86
准备编译依赖的子模块:
./third_party/prepare.sh
安装英特尔数学核心库(MKL):
./third_party/install-mkl.sh
本机编译 MegEngine Lite:
scripts/cmake-build/host_build.sh
Android Arm
准备编译依赖的子模块:
./third_party/prepare.sh
从安卓 官网 下载 NDK 并解压到某路径, 并将改路径设置为 NDK_ROOT
环境变量:
export NDK_ROOT=/path/to/ndk
交叉编译 MegEngine Lite:
scripts/cmake-build/cross_build_android_arm_inference.sh
编译完成之后 MegEngine Lite 库和头文件路径 /path/to/megenginelite-lib
-
Linux x86:
build_dir/host/MGE_WITH_CUDA_OFF/MGE_INFERENCE_ONLY_ON/Release/install/lite/
-
Android Arm:
build_dir/android/arm64-v8a/Release/install/lite/
编译 Inference 代码MegEngine 旷视天元 (欢迎 star~
Gitee:MegEngine/MegEngine
MegEngine 官网:MegEngine-深度学习,简单开发
欢迎加入 MegEngine 技术交流 QQ 群:1029741705