DeepDetect深度学习平台从源码编译安装指南

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相关配置

  1. 添加CUDA库路径:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
  1. 启用cuDNN:
cmake .. -DUSE_CUDNN=ON
  1. 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
  1. 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 运行测试

  1. 安装依赖:
sudo apt install python-numpy
  1. 编译测试:
cmake -DBUILD_TESTS=ON ..
make
  1. 执行测试:
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),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何灿前Tristan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值