目录
前言
深度学习项目想要落地不可避免得将模型集成到后端当中,一般普通的后端服务器并没有GPU,更多的还是希望使用CPU来做预测(当然训练还是建议用GPU),本博客提供一个通用的操作方案,具体搭建可以根据你的需求调整。
后端
安装flask框架
sudo pip install virtualenv
#安装virtualenv
virtualenv------用来建立一个虚拟的python环境,一个专属于项目的python环境
mkdir flask_uwsgi
#创建部署flask的文件夹
cd flask_uwsgi
cd到文件夹
virtualenv -p /usr/bin/python3 env
#创建虚拟环境
source env/bin/activate
#激活虚拟环境
pip install flask
deactivate
#退出虚拟环境
用虚拟环境的好处就是每个项目可以保持自己的一套版本。
配置mmdetection
预备工作
配置之前,强烈建议,先将linux默认的python就是2版本改成3,(不过现在好像最新的默认是3了?),这个就要将之前默认的python软链接删除,然后再链接上python3。
本服务器Linux的软链接存放位置是/usr/bin
rm /usr/bin/python
删除旧的软链接
ln -s /usr/bin/python3 /usr/bin/python
建立新的软链接
可能这个文件路径并不一致,要看你自己的服务器具体路径。
包括pip 也换成默认 pip3。
可以将软链接换掉,也可以将pip删除,强制重新安装。
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
查看信息
python3 get-pip.py --force-reinstall
强制重新安装
ln -s /usr/bin/pip3 /usr/bin/pip
设置pip默认打开pip3
位置也可能在/usr/local/bin下
为什么要做以上工作呢?因为后面配置一堆mmdetection需要的包时,很多在安装过程中内部触发python或者pip命令,导致版本不匹配(如果还是默认的py2)。因为外部是使用python3 pip3。
需要安装的包
-
安装torch、torchvision、numpy
-
安装matplotlib
-
安装cython
-
安装mmcv (会因为下载opencv-python巨卡,这个问题可以通过升级pip3解决,
pip3 install --upgrade pip
)
这里其实应该安装mmcv-full -
安装pycocotools, 如果不安装测试的时候会报错
git clone https://github.com/cocodataset/cocoapi.git
下载
(这里和后面mmd的编译有关)
然后到cocoapi/PythonAPI目录下执行make
命令
再执行python3 setup.py install --user
pip list可以查看已经安装的各个包的版本
安装mmdetection
下载mmdetection源码
git clone https://github.com/open-mmlab/mmdetection.git
下载依赖包和编译
cd mmdetection
pip install -r requirements/build.txt
pip3 install -v -e .
具体安装要求mmd有提供一个文件可以参考,给复制过来了:
ARG PYTORCH="1.6.0"
ARG CUDA="10.1"
ARG CUDNN="7"
FROM pytorch/pytorch:${
PYTORCH}-cuda${
CUDA}-cudnn${
CUDNN}-devel
ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0+PTX"
ENV TORCH_NVCC_FLAGS="-Xfatbin -compress-all"
ENV CMAKE_PREFIX_PATH="$(dirname $(which conda))/../"
RUN apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Install MMCV
RUN pip install mmcv-full==latest+torch1.6.0+cu101 -f https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html
# Install MMDetection
RUN conda clean --all
RUN git clone https://gith