一、环境说明
Ubuntu环境为20.04:
Linux version 5.15.0-88-generic (buildd@lcy02-amd64-011) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #98~20.04.1-Ubuntu SMP Mon Oct 9 16:43:45 UTC 2023
gcc、g++为5.3.1版本
gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2)
gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2)
CUDA版本为11.0,CUDNN版本为8.9.2
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Thu_Jun_11_22:26:38_PDT_2020
Cuda compilation tools, release 11.0, V11.0.194
Build cuda_11.0_bu.TC445_37.28540450_0
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 2
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
显卡为3090
二、安装前的注意事项
官方最低环境推荐(不推荐、环境太老不适合30系显卡):
PyTorch 1.0 from a nightly release. It will not work with 1.0 nor 1.0.1. Installation instructions can be found in https://pytorch.org/get-started/locally/
torchvision from master
cocoapi
yacs
matplotlib
GCC >= 4.9
OpenCV
CUDA >= 9.0
三、安装步骤
设置正确cuda路径(修改.bashrc,添加如下,保存刷新)
export CUDA_HOME="/usr/local/cuda-11.0"
export CUDA_PATH="$CUDA_HOME"
export PATH="$CUDA_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$CUDA_HOME/lib64:$CUDA_HOME/lib:$CUDA_HOME/extras/CUPTI/lib64:$CUDA_HOME/efa/lib:$LD_LIBRARY_PATH"
创建conda环境
conda create --name maskrcnn_benchmark python==3.7 -y
conda activate maskrcnn_benchmark
为新python安装正确的pip和依赖项
conda install ipython pip
安装依赖(opencv建议安装低版本):
pip install ninja yacs cython matplotlib tqdm -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install opencv-python==3.4.10.35 -i https://pypi.tuna.tsinghua.edu.cn/simple
安装Pytorch:
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=11.0 -c pytorch
正式安装(官方步骤):
export INSTALL_DIR=$PWD
# install pycocotools
cd $INSTALL_DIR
git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
python setup.py build_ext install
# install cityscapesScripts
cd $INSTALL_DIR
git clone https://github.com/mcordts/cityscapesScripts.git
cd cityscapesScripts/
python setup.py build_ext install
安装apex:
建议用git克隆完整的apex包,然后再退回老版本的apex
cd $INSTALL_DIR
git clone https://github.com/NVIDIA/apex.git #git克隆,不要用网页下载压缩包
cd apex
git checkout f3a960f80244cf9e80558ab30f7f7e8cbf03c0a0 # 回退到老版本
python setup.py install --cuda_ext --cpp_ext
安装maskrcnn:
cd $INSTALL_DIR
git clone https://github.com/facebookresearch/maskrcnn-benchmark.git
cd maskrcnn-benchmark
# 添加路径
cuda_dir="maskrcnn_benchmark/csrc/cuda"
perl -i -pe 's/AT_CHECK/TORCH_CHECK/' $cuda_dir/deform_pool_cuda.cu $cuda_dir/deform_conv_cuda.cu
# You can then run the regular setup command
# 编译
python setup.py build develop
总体环境及其版本如下:
pip list
Package Version Editable project location
------------------ --------------- ----------------------------
apex 0.1
appdirs 1.4.4
backcall 0.2.0
certifi 2022.12.7
charset-normalizer 3.3.2
cityscapesScripts 2.2.2
coloredlogs 15.0.1
cPython 0.0.6
cycler 0.11.0
Cython 3.0.5
decorator 5.1.1
dnspython 2.3.0
flit_core 3.6.0
fonttools 4.38.0
humanfriendly 10.0
idna 3.4
ipython 7.31.1
jedi 0.18.1
kiwisolver 1.4.5
maskrcnn-benchmark 0.1 /home/ztt/maskrcnn_benchmark
matplotlib 3.5.3
matplotlib-inline 0.1.6
mkl-fft 1.3.1
mkl-random 1.2.2
mkl-service 2.4.0
ninja 1.11.1.1
numpy 1.21.6
opencv-python 3.4.10.35
packaging 23.2
parso 0.8.3
pexpect 4.8.0
pickleshare 0.7.5
Pillow 9.4.0
pip 22.3.1
prompt-toolkit 3.0.36
ptyprocess 0.7.0
pycocotools 2.0
Pygments 2.11.2
pymongo 4.6.0
pyparsing 3.1.1
pyquaternion 0.9.9
python-dateutil 2.8.2
PyYAML 6.0.1
requests 2.31.0
setuptools 65.6.3
six 1.16.0
torch 1.7.0
torchaudio 0.7.0a0+ac17b64
torchvision 0.8.0
tqdm 4.66.1
traitlets 5.7.1
typing 3.10.0.0
typing_extensions 4.7.1
urllib3 2.0.7
wcwidth 0.2.5
wheel 0.38.4
yacs 0.1.8
conda list
# packages in environment at /home/ztt/anaconda3/envs/maskrcnn:
#
# Name Version Build Channel
_libgcc_mutex 0.1 main defaults
_openmp_mutex 5.1 1_gnu defaults
apex 0.1 pypi_0 pypi
appdirs 1.4.4 pypi_0 pypi
backcall 0.2.0 pyhd3eb1b0_0 defaults
blas 1.0 mkl defaults
ca-certificates 2023.08.22 h06a4308_0 defaults
certifi 2022.12.7 py37h06a4308_0 defaults
charset-normalizer 3.3.2 pypi_0 pypi
cityscapesscripts 2.2.2 pypi_0 pypi
coloredlogs 15.0.1 pypi_0 pypi
cpython 0.0.6 pypi_0 pypi
cudatoolkit 11.0.221 h6bb024c_0 defaults
cycler 0.11.0 pypi_0 pypi
cython 3.0.5 pypi_0 pypi
decorator 5.1.1 pyhd3eb1b0_0 defaults
dnspython 2.3.0 pypi_0 pypi
flit-core 3.6.0 pyhd3eb1b0_0 defaults
fonttools 4.38.0 pypi_0 pypi
freetype 2.12.1 h4a9f257_0 defaults
giflib 5.2.1 h5eee18b_3 defaults
humanfriendly 10.0 pypi_0 pypi
idna 3.4 pypi_0 pypi
intel-openmp 2021.4.0 h06a4308_3561 defaults
ipython 7.31.1 py37h06a4308_1 defaults
jedi 0.18.1 py37h06a4308_1 defaults
jpeg 9e h5eee18b_1 defaults
kiwisolver 1.4.5 pypi_0 pypi
lcms2 2.12 h3be6417_0 defaults
ld_impl_linux-64 2.38 h1181459_1 defaults
lerc 3.0 h295c915_0 defaults
libdeflate 1.17 h5eee18b_1 defaults
libedit 3.1.20221030 h5eee18b_0 defaults
libffi 3.2.1 hf484d3e_1007 defaults
libgcc-ng 11.2.0 h1234567_1 defaults
libgomp 11.2.0 h1234567_1 defaults
libpng 1.6.39 h5eee18b_0 defaults
libstdcxx-ng 11.2.0 h1234567_1 defaults
libtiff 4.5.1 h6a678d5_0 defaults
libuv 1.44.2 h5eee18b_0 defaults
libwebp 1.2.4 h11a3e52_1 defaults
libwebp-base 1.2.4 h5eee18b_1 defaults
lz4-c 1.9.4 h6a678d5_0 defaults
maskrcnn-benchmark 0.1 dev_0 <develop>
matplotlib 3.5.3 pypi_0 pypi
matplotlib-inline 0.1.6 py37h06a4308_0 defaults
mkl 2021.4.0 h06a4308_640 defaults
mkl-service 2.4.0 py37h7f8727e_0 defaults
mkl_fft 1.3.1 py37hd3c417c_0 defaults
mkl_random 1.2.2 py37h51133e4_0 defaults
ncurses 6.4 h6a678d5_0 defaults
ninja 1.11.1.1 pypi_0 pypi
ninja-base 1.10.2 hd09550d_5 defaults
numpy 1.21.6 pypi_0 pypi
numpy-base 1.21.5 py37ha15fc14_3 defaults
opencv-python 3.4.10.35 pypi_0 pypi
openssl 1.1.1w h7f8727e_0 defaults
packaging 23.2 pypi_0 pypi
parso 0.8.3 pyhd3eb1b0_0 defaults
pexpect 4.8.0 pyhd3eb1b0_3 defaults
pickleshare 0.7.5 pyhd3eb1b0_1003 defaults
pillow 6.2.0 pypi_0 pypi
pip 22.3.1 py37h06a4308_0 defaults
prompt-toolkit 3.0.36 py37h06a4308_0 defaults
ptyprocess 0.7.0 pyhd3eb1b0_2 defaults
pycocotools 2.0 pypi_0 pypi
pygments 2.11.2 pyhd3eb1b0_0 defaults
pymongo 4.6.0 pypi_0 pypi
pyparsing 3.1.1 pypi_0 pypi
pyquaternion 0.9.9 pypi_0 pypi
python 3.7.7 hcf32534_0_cpython defaults
python-dateutil 2.8.2 pypi_0 pypi
pytorch 1.7.0 py3.7_cuda11.0.221_cudnn8.0.3_0 pytorch
pyyaml 6.0.1 pypi_0 pypi
readline 8.2 h5eee18b_0 defaults
requests 2.31.0 pypi_0 pypi
setuptools 65.6.3 py37h06a4308_0 defaults
six 1.16.0 pyhd3eb1b0_1 defaults
sqlite 3.33.0 h62c20be_0 defaults
tk 8.6.12 h1ccaba5_0 defaults
torchaudio 0.7.0 py37 pytorch
torchvision 0.8.0 py37_cu110 pytorch
tqdm 4.66.1 pypi_0 pypi
traitlets 5.7.1 py37h06a4308_0 defaults
typing 3.10.0.0 pypi_0 pypi
typing-extensions 4.7.1 pypi_0 pypi
typing_extensions 4.4.0 py37h06a4308_0 defaults
urllib3 2.0.7 pypi_0 pypi
wcwidth 0.2.5 pyhd3eb1b0_0 defaults
wheel 0.38.4 py37h06a4308_0 defaults
xz 5.4.2 h5eee18b_0 defaults
yacs 0.1.8 pypi_0 pypi
zlib 1.2.13 h5eee18b_0 defaults
zstd 1.5.5 hc292b87_0 defaults