树莓派安装MNN

前言

  MNN是阿里开源的一款用于边缘端设备部署、推理深度学习模型的框架,与腾讯开源的ncnn类似哈。
  MNN在[github](https://github.com/alibaba/MNN "github")上有开源,同时官方也有提供[开发接口文档](https://www.yuque.com/mnn "开发接口文档");而且写的比较详细。跟ncnn一样,MNN也是在手机端用的还比较多,而且支持Tensorflow、Caffe、ONNX等主流模型文件格式,支持CNN、RNN、GAN等常用网络

安装依赖

  首先安装依赖,跟ncnn类似,依赖也比较少,而且跟ncnn的依赖差不多,所以如果编译过ncnn,基本上也不需要在安装什么库。主要安装以下依赖库:
sudo apt-get install cmake
sudo apt-get install libprotobuf-dev
sudo apt-get install protobuf-compiler
sudo apt-get install libvulkan-dev 

基本上,就需要安装这几个工具和库,这几个也是深度学习编程常见的库。

下载源码编译安装

  首先当然是要先下载源码,通过git命令来下载,或者直接去github下载压缩包,然后解压。
git clone https://github.com/alibaba/MNN.git
cd MNN
./schema/generate.sh
mkdir build
cd build
  默认编译:
cmake .. && make -j4
如果需要打开某些功能还可以带参数编译:
 cmake -DMNN_SUPPORT_TFLITE_QUAN=true -DMNN_BUILD_CONVERTER=true -DMNN_BUILD_QUANTOOLS=true -DMNN_BUILD_DEMO=true -DMNN_OPENMP=true ..

修改MNN下的CMakeLists.txt文件。具体参数以及定义如下:

参数 默认值 作用
MNN_VULKAN OFF 编译 GPU 优化库:MNN-VULKAN
MNN_ARM82 OFF 编译 MNN-ARM82 (新架构的CPU 优化 Backend)
MNN_OPENCL OFF 编译 GPU 优化库: MNN-OpenCL
MNN_OPENGL OFF 编译 GPU 优化库:MNN-OpenGL
MNN_USE_SYSTEM_LIB OFF 编译 OpenCL / Vulkan 时,依赖系统的OpenCL / Vulkan 库或者。OFF 表示在运行时寻找系统驱动
MNN_BUILD_HARD OFF ARM平台下控制-mfloat-abi参数为hard或softfp
MNN_BUILD_SHARED_LIBS ON 控制MNN相关库是否编译为动态库而非静态库
MNN_FORBID_MULTI_THREAD OFF 禁用多线程
MNN_BUILD_DEMO OFF 编译Demo
MNN_BUILD_TRAIN OFF 编译训练相关
MNN_BUILD_QUANTOOLS OFF 编译量化工具
MNN_BUILD_CONVERTER OFF 编译模型转换器
MNN_EVALUATION OFF 编译评估工具
MNN_DEBUG_MEMORY OFF 调试内存
MNN_DEBUG_TENSOR_SIZE OFF 调试Tensor大小
MNN_SUPPORT_TFLITE_QUAN OFF 支持TFLite的量化Op
MNN_PORTABLE_BUILD OFF 静态链接第三方依赖来创建不依赖特定路径的可执行文件
MNN_SEP_BUILD ON 分开编译MNN的各个后端以及表达式.只在MNN_BUILD_SHARED_LIBS=ON时有效
MNN_AAPL_FMWK OFF 在Apple平台下将MNN作为Framework而非静态/动态库编译并打包metallib
  编译后可将结果打包,默认打包路径是
头文件:/usr/local/include/MNN
库文件:/usr/local/lib/libMNN.so
工具:/MNN/build

绿橘梢头几点春。似留香蕊送行人。
明朝紫凤朝天路,十二重城五碧云。
歌渐咽,酒初醺。尽将红泪湿湘裙。
赣江西畔从今日,明月清风忆使君。
– 宋-晏几道《鹧鸪天·绿橘梢头几点春》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章