高性能神经网络推理框架 ncnn 极简脚本编译安装——适用于Linux下root用户快速极简安装
Posted 墨理学AI
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高性能神经网络推理框架 ncnn 极简脚本编译安装——适用于Linux下root用户快速极简安装相关的知识,希望对你有一定的参考价值。
- 🥇 版权: 本文由【墨理学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 # ${BUILD_DIR}
🔵 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 的入门博文,总结如下,仅供参考
- yolov5s.pt 转 onnx 再转 ncnn 详细教程(一) | 粗浅解析 |【❤️yolov5s.pt 转 onnx 转 ncnn❤️】
- YOLOX (pytorch)模型 转 ONNX 转 ncnn 之❤️C++运行推理❤️【YOLOX 实战三】
- yolov3(darknet )训练 - 测试 - 模型转换❤️darknet 转 ncnn 之C++运行推理❤️【yolov3 实战一览】
- ❤️ YOLOv3 ncnn 模型 yolov3-spp.cpp ❤️【YOLOv3之Ncnn推理实现-代码】
- yolov4.onnx和yolov5_sim.onnx 单图像精度校验 | 推理示例 | Python实现 | 【onnx 精度校验】
- ncnn 和 onnx 推理校验对比,大家要多注意模型本身预处理,保证预处理送入模型前的输入一致即可
- 博主在工作中,目前采用 ncnn C++ 推理 和 onnx 的 Python 推理进行的模型校验对比
- 深度学习模型预处理操作一览【预处理】
以上是关于高性能神经网络推理框架 ncnn 极简脚本编译安装——适用于Linux下root用户快速极简安装的主要内容,如果未能解决你的问题,请参考以下文章