DeepDetect深度学习平台从源码编译安装指南
DeepDetect是一个开源的深度学习平台和API,支持多种机器学习框架。本文将详细介绍如何从源码编译安装DeepDetect,并针对不同使用场景提供配置建议。
一、系统环境准备
DeepDetect支持在Linux系统上运行,本文以Ubuntu 20.04 LTS为例。对于其他Linux发行版或Unix系统,步骤可能略有不同。
1.1 安装基础依赖
首先需要安装必要的系统依赖库:
sudo apt-get install build-essential libgoogle-glog-dev libgflags-dev libeigen3-dev \
libopencv-dev libboost-all-dev libboost-iostreams-dev libcurlpp-dev \
libcurl4-openssl-dev libopenblas-dev libhdf5-dev libprotobuf-dev \
libleveldb-dev libsnappy-dev liblmdb-dev libutfcpp-dev cmake \
libgoogle-perftools-dev unzip python-setuptools python3-dev \
python3-six python-enum34 libarchive-dev rapidjson-dev \
libmapbox-variant-dev wget libboost-test-dev libboost-stacktrace-dev \
python3-typing-extensions python3-numpy
1.2 特殊环境准备
对于CUDA 11+用户:需要安装较新版本的CMake
sudo apt-get install apt-transport-https ca-certificates gnupg software-properties-common
wget -q -O- https://apt.kitware.com/keys/kitware-archive-latest.asc | sudo apt-key add -
sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main'
sudo apt-get update
sudo apt-get install cmake kitware-archive-keyring
二、编译选项配置
DeepDetect提供了多种使用方式,编译时需要根据需求选择不同的选项:
2.1 命令行JSON API模式
cmake .. -DUSE_COMMAND_LINE=ON -DUSE_JSON_API=ON
2.2 REST服务器模式
cmake .. -DUSE_HTTP_SERVER_OATPP=ON
2.3 库模式(集成到其他项目)
cmake .. -DUSE_JSON_API=ON -DUSE_HTTP_SERVER_OATPP=OFF -DUSE_COMMAND_LINE=OFF
三、默认编译(带OpenCV)
标准编译流程如下:
mkdir build && cd build
DEEPDETECT_RELEASE=OFF DEEPDETECT_ARCH=gpu DEEPDETECT_BUILD=torch \
DEEPDETECT_DEFAULT_MODELS=false BUILD_OPENCV=ON ../build.sh
GPU相关配置:
- 添加CUDA库路径:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
- 启用cuDNN:
cmake .. -DUSE_CUDNN=ON
- Jetson TX1/TX2专用配置:
# TX1
cmake .. -DCUDA_ARCH="-gencode arch=compute_53,code=sm_53" -DUSE_CUDNN=ON -DJETSON=ON -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF
# TX2
cmake .. -DCUDA_ARCH="-gencode arch=compute_62,code=sm_62" -DUSE_CUDNN=ON -DJETSON=ON -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF
- CPU-only模式:
cmake .. -DUSE_CPU_ONLY=ON
四、扩展功能支持
4.1 XGBoost支持
cmake .. -DUSE_XGBOOST=ON
# 启用GPU支持(实验性)
cmake .. -DUSE_XGBOOST=ON -DUSE_XGBOOST_GPU=ON
4.2 TensorFlow支持
需要先安装Bazel和额外依赖:
sudo apt-get install python-numpy swig python-dev python-wheel unzip
编译选项:
cmake .. -DUSE_TF=ON -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF
# CPU-only模式
cmake .. -DUSE_TF=ON -DUSE_TF_CPU_ONLY=ON
# 同时启用XGBoost
cmake .. -DUSE_TF=ON -DUSE_XGBOOST=ON
4.3 T-SNE支持
cmake .. -DUSE_TSNE=ON
4.4 Dlib支持
cmake .. -DUSE_DLIB=ON
# CPU-only模式
cmake .. -DUSE_DLIB=ON -DUSE_DLIB_CPU_ONLY=ON
4.5 TensorRT支持
先安装依赖:
apt install libnvinfer-plugin-dev libnvparsers-dev libnvonnxparsers-dev
编译选项:
cmake .. -DUSE_TENSORRT=ON
# 启用开源组件
cmake .. -DUSE_TENSORRT=ON -DUSE_TENSORRT_OSS=ON
4.6 Libtorch支持
cmake .. -DUSE_TORCH=ON
# CPU-only模式
cmake .. -DUSE_TORCH=ON -DUSE_CPU_ONLY=ON
4.7 禁用Caffe
cmake .. -DUSE_CAFFE=OFF -DUSE_XGBOOST=ON
4.8 相似性搜索支持
cmake .. -DUSE_SIMSEARCH=ON
4.9 系统日志输出
cmake .. -DUSE_DD_SYSLOG=ON
五、测试与代码风格
5.1 运行测试
- 安装依赖:
sudo apt install python-numpy
- 编译测试:
cmake -DBUILD_TESTS=ON ..
make
- 执行测试:
ctest
5.2 代码风格
使用clang-format统一代码风格:
cmake ..
make clang-format
六、启动与使用
6.1 启动服务器
cd build/main
./dede
常用启动参数:
-host
:指定监听主机(默认localhost)-port
:指定监听端口(默认8080)-nthreads
:HTTP线程数(默认10)
查看所有选项:
./dede --help
6.2 服务自动启动
可以通过配置文件在服务器启动时自动创建服务和运行预测:
./dede -service_start_list <yourfile>
配置文件格式:
service_create;sname;JSON字符串
service_predict;JSON字符串
6.3 纯命令行JSON API
./dede --jsonapi 1 <其他选项>
常用选项可通过./dede --help
查看。
七、总结
本文详细介绍了DeepDetect从源码编译安装的完整流程,涵盖了各种使用场景和功能扩展选项。开发者可以根据实际需求选择合适的编译配置,构建符合项目需求的深度学习平台。DeepDetect的模块化设计使其能够灵活支持多种深度学习框架,是构建AI应用的强大工具。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考