基础环境:ubuntu18.04+cuda11.0+cudnn8.0.5
cuda11.0+cudnn8.0.5 安装方式参考:【深度学习环境-2】nvidia驱动、cuda安装配置_WXG1011的博客-CSDN博客
****************************************************************************************************************************************
写在前面:
安装算法环境时,一定要注意cuda、cudnn、pytorch、tensorflow的依赖关系,不然就是血的教训呀!
****************************************************************************************************************************************
1、安装工程所需的基础包
# 创建tensorflow虚拟环境
conda create -n tensorflow python==3.7
# 激活tensorflow虚拟环境
source activate tensorflow
pip install pycocotools
pip install requests
pip install scipy
pip install yacs
pip install pandas
2、安装opencv
pip3 install opencv-python
一般情况下,可以顺利安装成功,但有时候会报错。
提示未安装skbuild包,安装scikit-build包。
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-build
scikit-build包安装成功后,再次尝试,又提示CMake安装有问题,正在终止构建,安装cmake。
sudo apt-get install cmake
cmake安装成功后,再次尝试,经过漫长的等待,opencv-python安装成功。
3、安装pytorch
推荐通过whl的方式安装,因为通过官方pip的方式安装会出现与python版本不兼容的问题,还得再重新更换pytorch或python版本。
- 常规方法:
从Previous PyTorch Versions | PyTorch选择对应版本安装。
# pytorch官网:https://pytorch.org/get-started/previous-versions/
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
- 通过whl安装
从https://download.pytorch.org/whl/torch_stable.html下载对应的whl文件。
pip install **.whl
安装成功之后,验证是否安装成功
python
import torch
#pytorch版本
torch.__version__
#cuda版本
torch.version.cuda
#cuda可否正常使用
torch.cuda.is_available()
#cudnn版本
torch.backends.cudnn.version()
注意:cpu版本只需要print(torch.__version__)就可以了,print(torch.cuda.is_available())是验证gpu版本的。
pytorch、torchvision对应关系:
PyTorch中torch、torchvision、torchaudio、torchtext版本对应关系_torch2.0.1对应的torchvision-CSDN博客
有一次在安装pytorch与torchvision时遇到一个怪异的现象,通过pip list查询的torch版本与通过torch.__verson__查询的版本不一致,经过多种尝试都无解,无意中先安装指定版本的torchvision,再安装对应版本的pytorch,结果,完美解决,很是纳闷~~
4、安装tensorflow
# 根据cuda版本选择对应tensorflow-gpu版本
pip install tensorflow-gpu == ××.×
# 测试tensorflow是否安装成功
(tensorflow) zxh@zxh-Precision-3640-Tower:~/Chengdu$ python
Python 3.7.0 (default, Oct 9 2018, 10:31:47)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__
'2.8.0'
>>>
TensorFlow、cuda、cudnn版本对照表:
可能出现的错误:
Could not load dynamic library 'libcusolver.so.11'; dlerror: libcusolver.so.11: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda-11.0/lib64:
解决方法:
创建软链接
sudo ln -s /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcusolver.so.10 /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcusolver.so.11
5、实例分割——YOLACT环境配置
- pytorch1.7编译方式
克隆地址:GitHub - dbolya/yolact: A simple, fully convolutional model for real-time instance segmentation.
git clone https://github.com/dbolya/yolact.git
cd yolact/external/DCNv2
python setup.py build develop
出现如下错误:
/home/zxh/Chengdu/yolact/external/DCNv2/src/cuda/dcn_v2_cuda.cu(107): error: identifier "THCState_getCurrentStream" is undefined
/home/zxh/Chengdu/yolact/external/DCNv2/src/cuda/dcn_v2_cuda.cu(279): error: identifier "THCState_getCurrentStream" is undefined
/home/zxh/Chengdu/yolact/external/DCNv2/src/cuda/dcn_v2_cuda.cu(324): error: identifier "THCudaBlas_Sgemv" is undefined
解决方法:
https://github.com/lbin/DCNv2/tree/pytorch_1.7 git对应pytorch版本的DCNv2包,替换yolact中对应的文件夹,然后进行编译,make.sh脚本内容为:
(tensorflow) zxh@zxh-Precision-3640-Tower:~/Chengdu/external/DCNv2$ ./make.sh
出现如下提示即配置成功
参考链接:yolact模型DCNv2模块编译错误解决方法_[违规账号,无法查看]的博客-CSDN博客_dcnv2编译
DCNv2编译时报错error: ‘THFloatBlas_gemv’ was not declared_开机摸鱼的博客-CSDN博客
# 测试
python eval.py --trained_model=weights/yolact_base_54_800000.pth --score_threshold=0.15 --top_k=15 --video_multiframe=4 --video=0
- pytorch1.8编译方式
最近新购一个RTX3070显卡,采用上述方式一直编译失败,无意中看到下面这篇帖子,帮我解决了大问题,经测试,可行。
DCNv2在pytorch1.8.1的安装_ubuntu 编译 dcnv2 pytorch 1.8-CSDN博客
我的安装环境为:ubuntu18.04+cuda11.1+cudnn8.05+pytorch1.8.0
6、工程运行效果图