- 🥇 版权: 本文由【墨理学AI】原创、在CSDN首发、各位大佬、开打开打
👋 认识 ncnn
ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。
ncnn 从设计之初深刻考虑手机端的部署和使用。
无第三方依赖,跨平台,据称 手机端 cpu 的速度快于目前所有已知的开源框架。
基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP.
更多不同大厂商推出的深度学习模型推理部署框架,各位可移步下方博文进行了解
模型推理框架一览 | 模型部署不得不了解的罗马【模型部署框架】
📘 下载
git clone https://github.com/Tencent/ncnn.git
下载 zip,然后 copy 到服务器
unzip ncnn-master.zip
📔 安装准备
基础 C++ 环境即可、Linux 环境通常具备
sudo 可快速安装相关依赖
sudo apt install build-essential git cmake libprotobuf-dev protobuf-compiler libvulkan-dev vulkan-utils libopencv-dev
VULKAN 解压安装、export 环境变量
wget https://sdk.lunarg.com/sdk/download/1.2.189.0/linux/vulkansdk-linux-x86_64-1.2.189.0.tar.gz?Human=true -O vulkansdk-linux-x86_64-1.2.189.0.tar.gz
tar -xf vulkansdk-linux-x86_64-1.2.189.0.tar.gz
export VULKAN_SDK=$(pwd)/1.2.189.0/x86_64
📗 make、make -j 、 make install 一个脚本即可完成安装
🟣 简单分析
ncnn 支持多种平台、安卓端、ios端、以及特定类型的开发板
ncnn-master/build.sh
该脚本下,包含各个平台的编译安装指令,我们可以根据自己平台选择性安装即可
🔴 指定 install 路径为 build/install 即可
自定义,撰写的一个 Linux(Ubuntu、centOS)下编译安装脚本如下
set -uex
BUILD_DIR="build"
if [ $# == 1 ]; then
if [ $1 == "1" ]; then
rm -rf ${BUILD_DIR}
fi
fi
if [ ! -d ${BUILD_DIR} ]; then
mkdir -p ${BUILD_DIR}
fi
pushd ${BUILD_DIR}
rm -rf *
cmake -DCMAKE_INSTALL_PREFIX=./install ..
make -j
make install
popd
🔵 tree install 查看安装的库和头文件效果如下
我们看一看,make install 安装了什么
cd build
tree install
- bin 目录下,是相关 可执行 ncnn 工具
- include 目录下,是相关头文件
- lib 目录下,是静态库
tree install
install
├── bin
│ ├── caffe2ncnn
│ ├── darknet2ncnn
│ ├── mxnet2ncnn
│ ├── ncnn2int8
│ ├── ncnn2mem
│ ├── ncnn2table
│ ├── ncnnmerge
│ ├── ncnnoptimize
│ └── onnx2ncnn
├── include
│ └── ncnn
│ ├── allocator.h
│ ├── benchmark.h
│ ├── blob.h
│ ├── c_api.h
│ ├── command.h
│ ├── cpu.h
│ ├── datareader.h
│ ├── gpu.h
│ ├── layer.h
│ ├── layer_shader_type_enum.h
│ ├── layer_shader_type.h
│ ├── layer_type_enum.h
│ ├── layer_type.h
│ ├── mat.h
│ ├── modelbin.h
│ ├── ncnn_export.h
│ ├── net.h
│ ├── option.h
│ ├── paramdict.h
│ ├── pipelinecache.h
│ ├── pipeline.h
│ ├── platform.h
│ ├── simpleocv.h
│ ├── simpleomp.h
│ ├── simplestl.h
│ └── vulkan_header_fix.h
└── lib
├── cmake
│ └── ncnn
│ ├── ncnn.cmake
│ ├── ncnnConfig.cmake
│ └── ncnn-release.cmake
└── libncnn.a
6 directories, 39 files
如果是其他项目需要,那么只需 copy install 目录下的这些文件即可开始使用 ncnn
📙 ncnn 相关博文推荐
本博文是 ncnn 脚本方式、极简安装的整理,如果本博文脚本直接运行安装失败,单独步骤安装分析,适用于普通用户的安装方式可参考如下博文
ncnn 普通用户 逐步编译安装教程 | 示例运行【 onnx2ncnn | caffe2ncnn | mxnet2ncnn | darknet2ncnn 】
博主关于 ncnn 的入门博文,总结如下,仅供参考
|