html5,flash设计开发|交互设计|网站建设 青岛,学习电子商务网站建设与管理感想,毅冰做外贸是哪个网站,手工制作香囊前言 由于使用的是集群#xff0c;自己不具有管理员权限#xff0c;所以以下所有的情况均在非管理员权限下进行安装#xff0c;即该安装策略仅适用于普通用户构建自己的环境。 什么是NCNN ncnn是一款非常高效易用的深度学习推理框架#xff0c;支持各种神经网络模型#x…前言 由于使用的是集群自己不具有管理员权限所以以下所有的情况均在非管理员权限下进行安装即该安装策略仅适用于普通用户构建自己的环境。 什么是NCNN ncnn是一款非常高效易用的深度学习推理框架支持各种神经网络模型如pytorch、tensorflow、onnx等以及多种硬件后端如x86、arm、riscv、mips、vulkan等。按照其官网的说明该框架是一个为手机端极致优化的高性能神经网络前向计算框架从设计之初深刻考虑手机端的部属和使用。无第三方依赖跨平台手机端 cpu 的速度快于目前所有已知的开源框架。基于 ncnn开发者能够将深度学习算法轻松移植到手机端高效执行开发出人工智能 APP将 AI 带到你的指尖。 如何编译安装NCNN
Liunx情况下编译安装文档 点击进入 首先明确由于NCNN为C实现所以在编译安装前需要一些依赖在官网推荐的编译安装文档中这样写道 明显在Linux系统中需要 g cmake protobuf opencv (macOS 需要glslang) 一般来讲Liunx系统一般会内置 g 和 cmake但是版本一般是比较低的版本主要为了系统的稳定所以在编译安装NCNN过程中我们需要对其进行升级操作以下所有环境的配置和安装均在普通用户环境中进行。 依赖环境配置和安装
1 g环境 一般来讲Centos 7 内置的 g版本为4.8.5这个版本一般比较旧现在很多编译都需要在g 5.0及以上环境进行这里给大家推荐我之前的一篇博文在非root权限下进行 gcc g的升级点击进入这里需要注意如果您也是集群系统在编译GCC或者 G过程中需要注意下面的细节这时我踩过的坑原则上可以装更高的版本现在貌似 G发展到 9.xxx的版本了。 2 cmake Centos7内置的Cmake版本一般为2.8.12这个版本需要升级到 3.*版本您可以访问 该链接 进行下载对应版本的Cmake,这里以我安装的 cmake 3.17.2为例推荐大家直接根据系统然后下载已经编译好的版本这样子可以省去源码安装直接配置即可。当然您也可以下载源码版本自行进行编译安装。这里我简要介绍下两种不同方法的配置安装过程。然后再介绍一种非常简单的基于 yum install 的方法 2.1 Cmake 编译好的版本
即上面的 cmake-3.17.2-Linux-x86_64.tar.gz这种是最简单的策略只需要解压后在用户的环境下进行配置即可使用比较推荐这个方法。 2.1.1 您可以使用命令下载也可以直接下载好传到自己的服务器 如果您直接下载下载命令
wget https://cmake.org/files/v3.17/cmake-3.17.2-Linux-x86_64.tar.gz2.1.2 解压关键的执行文件在 bin 目录
tar xzvf cmake-3.17.2-Linux-x86_64.tar.gz2.1.3 配置环境变量 这里我们需要知道在Linux系统中环境变量有多种 其中系统环境变量的设置(需要管理员权限)主要有下面的三种方式 1 /etc/profile 用户登录时执行/etc/profile文件中设置系统的环境变量。但是Linux不建议在/etc/profile文件中设置系统环境变量。 2 在/etc/profile.d目录中增加环境变量脚本文件这是Linux推荐的方法/etc/profile在每次启动时会执行/etc/profile.d下全部的脚本文件。/etc/profile.d比/etc/profile好维护不想要什么变量直接删除/etc/profile.d下对应的 shell 脚本即可。/etc/profile.d目录下有很多脚本文件例如 /etc/profile.d目录中的oracle.sh是Oracle数据库的环境变量配置文件 3 在/etc/bashrc文件中设置环境变量。该文件配置的环境变量将会影响全部用户使用的bash shell。但是Linux也不建议在/etc/bashrc文件中设置系统环境变量。 由于我们没有系统管理员权限所以需要进行用户环境设置用户环境变量只对当前用户生效设置用户环境变量也有多种方法。 在用户的主目录有几个特别的文件用ls是看不见的用 ls .bash_* 可以看见。 1.bash_profile推荐首选 当用户登录时执行每个用户都可以使用该文件来配置专属于自己的环境变量。 2.bashrc 当用户登录时以及每次打开新的Shell时该文件都将被读取不推荐在里面配置用户专用的环境变量因为每开一个Shell该文件都会被读取一次效率肯定受影响。 3.bash_logout 当每次退出系统退出bash shell时执行该文件。 4.bash_history 保存了当前用户使用过的历史命令。 综合上面的内容可以看出 环境变量脚本文件的执行顺序
/etc/profile-/etc/profile.d-/etc/bashrc-用户的.bash_profile-用户的.bashrc这里我们选用对系统影响最低的 环境变量配置方式 用户的.bashrc这样比较保险也比较稳妥。
vi ~/.bashrc添加下面的内容 这里需要注意 : 这个符号在 Liunx 系统中为 中文分号或者 append的意思指的是将我们的 cmake/bin文件夹路径添加至系统路径 $PATH 中我这里将 : $PATH 置后即将cmke/bin路径加到了原来的系统PATH之前即优先加载您也可以像第二种方式那样书写在原PATH后加上 cmake/bin路径。
export PATH/home/y192353/butterfly/extension/cmake_3_17_2/bin:$PATH
或
export PATH$PATH:/home/y192353/butterfly/extension/cmake_3_17_2/bin以上配置好后直接运行环境变量生效命令
source ~/.bashrc然后查看 cmake 是否配置成功
cmake --version即安装成功
2.2 Cmake 源码编译
这需要您下载Cmake的源码下面箭头指代的地方 下载解压后文件夹如下包含各种源码文件 编译运行命令: 如果您尚未解压先进行解压
tar -zxvf cmake-3.17.2.tar.gz然后进行逐步编译
#在解压后的cmake-3.17.2文件夹下 创建 build 文件夹
mkdir build
cd build
#这一步很关键即确定安装路径 安装至用户对应的文件夹不然会报权限异常因为一般默认安装在 (/usr/local/..中)
#这是通过 配置文件进行指定安装目录的
../configure --prefix/yourPath/cmake-3.17.2
#开启编译安装 这个需要等待一会儿
gmake gmake install上述编译安装完成后即可以进行路径配置了具体和上面 【2.1.3 配置环境变量】小节一样不再赘述只不过这个时候您的路径需要是上面 --prefix 指定的路径。
2.3 Yum install 直接安装 cmake3该方法需要后续如果有cmake的操作要调用 cmake3 才可以
不想按照上面的方法一步步配置您可以直接使用下面的命令
yum install cmake3直接进行安装然后编译过程中使用 cmake3 进行就行了
3 OpenCv编译安装
先检测自己的系统内是否已经安装过了 OpenCv
pkg-config --modversion opencv如果已经安装了opencv会有打印输出如果没有安装则需要安装了。
3.1 OpenCv的安装(这里以Opencv3.4.16为例当然OpenCv4.*也类似)这里建议大家使用 OpenCv4,根据官网的说明OpenCv3会逐渐停止更新然后推出 OpenCv5
OpenCv的编译源码可以在 点击这里 找到 下载源码后使用命令解压
unzip opencv-3.4.16.zip解压后的文件夹 编译安装
cd opencv-3.14.6
#创建编译文件夹
mkdir build
cd build
#使用cmake 进行编译 最后面的两个点也要加上即默认的安装路径设置为 CMAKE_INSTALL_PREFIX/YourPath/opencv_3_4_16
cmake -D CMAKE_BUILD_TYPERELEASE -D CMAKE_INSTALL_PREFIX/YourPath/opencv_3_4_16 -D WITH_TBBON -D WITH_V4LON -D BUILD_TIFFON -D BUILD_EXAMPLESON -D WITH_OPENGLON -D WITH_EIGENON -D WITH_CUDAON -D WITH_CUBLASON ..
#在编译和安装过程中可以放在 计算节点(GPU)节点进行编译安装
#这里 可以使用 -j16 -j32 原则上都可以旨在加速编译需要较长时间
make -j8
#安装安装的内容放在了 /YourPath/opencv_3_4_16
make install
CMAKE_INSTALL_PREFIX/YourPath/opencv_3_4_16用来控制安装的路径否则会产生安装路径权限不够的问题 如果您安装的是 OpenCv4需要在 cmake 命令中再加入 OPENCV_GENERATE_PKGCONFIGON 用来控制是否生成pkg_config文件。这里是opencv3不同的地方opencv4中如果不加该命令将不会生成pkgconfig安装完成后找不到opencv.pv文件一般都是因为没加这句控制命令导致的。 3.2 环境变量配置
打开 ~/.bashrc vi ~/.bashrc添加内容
PKG_CONFIG_PATH$PKG_CONFIG_PATH:/YourPath/opencv_3_4_16/lib64/pkgconfig
export PKG_CONFIG_PATH
export LD_LIBRARY_PATH/YourPath/opencv_3_4_16/lib64/:$LD_LIBRARY_PATH下面是我的环境变量配置文件具体路径信息已经隐藏了整体上就是这个样子 将环境变量生效
source ~/.bashrc然后检查 opencv 的安装情况即可
pkg-config --modversion opencv4 安装 protobuf protobuf (Google Protocol Buffer)是一种平台无关、语言无关、可扩展且轻便高效的序列化数据结构的协议可以用于网络通信和数据存储。由于我们最终转化的是模型所以需要这样一个序列化工具。NCNN中需要使用到 protobuf 进行序列化。 protobuf 可进入 点击进入 下载这里我选择的是 21.11-all 版本貌似最新的版本中(第二张图)是对所对应的平台有源码 和 已编译版本这个有点像 Cmake的安装过程这里我使用源码进行安装 21.11-all版本 4.1 编译安装
1 解压
tar xzvf protobuf-all-21.11.tar.gz2 编译安装
#切换到解压后的 protobuf 文件夹
#这个会自动生成一些文件
./autogen.sh
#配置后期的编译安装过程
./configure --prefix/YourPath/protobuf_21_11
#编译和安装
make -j8
make install编译安装后在 /YourPath/protobuf_21_11 路径下会看到
3 环境变量配置(还是在 ~/.bashrc 中)不要忘了 source 一下 即如图将编译后的 bin 路径配置在 $PATH 路径中即可。 4 验证安装成功
protoc --version5 编译安装 NCNN
点击 下载 官方源码然后进行解压安装
也可以使用下面的命令进行一站下载编译
git clone https://github.com/Tencent/ncnn.git
cd ncnn
#这个是为了下载一些未下载的子包
git submodule update --init
#在文件夹中创建的新文件夹
mkdir build
cd build
#此步之后 推荐在 计算节点 含 GPU的节点操作
#注意 cmake 后面有两个点 即 使用 ../CMakeLists.txt 文件作为起始点在当前目录中生成
cmake .. (本步如果您 yum install cmake3可以使用 cmake3 .. )
#也可以是 -j16 -j32等 加速编译
make -j8
make install以上即全部过程后续如果有问题还会再次补充