记录一下自己的配置过程
1、查CUDA版本(已经安装了高版本CUDA)
nvidia-smi
conda -V
查询pytorch版本
(我这里电脑上已经有CUDA-11.3,但是后面发现版本不对应所以得降版本)
cuda降版本
(1)安装相应文件pytorch版本
conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=9.0 -c pytorch
(gcc、g++降级)
(2)安装cuda
sudo sh cuda_9.0.176_384.81_linux.run
直接按q退出,accept,除了安装NVIDIA驱动选项输入n以外(因为之前已经装过显卡驱动了),其余全部选y,
第一个位置选择/home/cuda9.0
配置环境变量。在.bashrc末尾export一些东西:
sudo gedit ~/.bashrc export PATH=/usr/local/cuda-9.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH export CUDA_HOME="/usr/local/cuda-9.0:$CUDA_HOME" source ~/.bashrc
(3)安装cudnn
将相关文件复制到刚才安装的cuda中:
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include/ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64/ sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h sudo chmod a+r /usr/local/cuda-9.0/lib64/libcudnn*
(4)切换cuda版本
可以使用stat命令查看当前cuda软链接指向的哪个cuda版本
cd usr/local sudo rm -rf cuda(cuda-11.3) sudo ln -s /usr/local/cuda-9.0 /usr/local/cuda
想切换其他版本的cuda,只需要改动建立软链接时cdua的正确路径即可。
使用上述的多个版本切换
修改个人用户目录下的.bashrc文件,
sudo gedit ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64 export PATH=$PATH:/usr/local/cuda/bin export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
最后输入指令
source .bashrc
使新配置的环境变量生效。
2、 pytorch
Start Locally | PyTorch(官网链接)
python3
import torch
torch.__version__
torch.cuda.is_available()
3、安装OpenCV4.6.0(后面protobuf版本冲突,OpenCV也降版本了)
mkdir build
cd build
下载OpenCV-contrib同版本的 放在OpenCV目录中
sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
contrib的依赖包
输入下图的进行cmake
sudo cmake -D CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/g++ -D CMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Auto OPENCV_EXTRA_MODULES_PATH=../opencv-4.6.0/opencv_contrib/modules/ ..
编辑切换为居中
cmake
然后sudo make
等进行到100%
然后
sudo make install sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig sudo apt-get update python3 import cv2 cv2.__version__
出现版本的话就是安装成功了。
4.编译caffe
(1)按照教程Ubuntu 16.04 在Conda沙盒环境下安装Caffe(Python2.7.15 + Protobuf2.6.1 + GPU)
在caffe文件目录下修改编译文件:
cp Makefile.config.example Makefile.config
主要根据链接修改
USE_CUDNN:= 1 OPENCV_VERSION:= 3 WITH_PYTHON_LAYER := 1 INCLUDE_DIRS:= $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial LIBRARY_DIRS:= $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/usr/lib/x86_64-linux-gnu/hdf5/serial
CUDA_ARCH :=-gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \ 要注释掉
(2)修改Makefile
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
(3)Cmake
sudo make all -j8
sudo make install -j8
sudo make runtest -j8
没有报错的话是成功了
问题:
(1).unsupported gpu architecture 'compute_61'
修改cuda.cmake
(2).python导入caffe模块有问题
用过网上方法,结果还是导入失败。后来做了一步sudo make pycaffe就成功了。
python导入caffe模块的问题_Jimyang1ssa的博客-CSDN博客
(3).make install
(4).libcudnn.so
(5).找不到caffe/proto/caffe.pb.h文件:在openpose/3rdparty/caffe/目录下,执行:
protoc src/caffe/proto/caffe.proto --cpp_out=. mkdir include/caffe/proto mv src/caffe/proto/caffe.pb.h include/caffe/proto/
5.编译openpose
(1)下载model
cd models
./getModels.sh
cd ..
(2)打开cmake
sudo cmake-gui
选择路径:按照教程Ubuntu 16.04 配置 OpenPose(Caffe基于Python2.7.15 + Protobuf2.6.1)
mkdir build
编译pybind11会下载不下来 用别人下载好的文件下载
然后进行cmake,选择build_caffe;build_python;download_body_coco_model;
Caffe_INCLUDE_DIRS和Caffe_LIBS的路径分别是openpose/3rdparty/caffe下的inclue文件和openpose/3rdparty/caffe/build/lib libcaffe.so文件
如果出错:Ubuntu 16.04 在Conda沙盒环境下安装Caffe(Python2.7.15 + Protobuf2.6.1 + GPU)_笑着走完自己的路的博客-CSDN博客
在CMakeLists.txt头部加入,再重新编译即可
if(POLICY CMP0022) cmake_policy(SET CMP0022 NEW) endif()
(3)进入cd build
sudo make -j8
编译openpose完成后进行测试
cd .. ./build/examples/openpose/openpose.bin --video examples/media/video.avi ./build/examples/openpose/openpose.bin --video examples/media/video.avi --face --hand
(4)我这里出现了protobuf版本冲突
准备重新安装OpenCV,用源码编译OpenCV3.4.5版本结果发现有两个版本,一开始以为同时存在的,想把4.6.0卸载结果怎么也卸载不掉,后来发现一个是C++版本一个是python版本
现在改了python版本的直接search opencv
根据conda库里有的版本进行安装 安装了3.4.2;source ~/.bashrc还得改一下
(5)protobuf版本和库的不对应
protobuf版本常见问题_Adenialzz的博客-CSDN博客_protobuf版本
(6)protobuf导入paddle模块时报错
导入paddle模块时报错_脑汁的博客-CSDN博客_import paddle报错
(7)libpack链接断开
(8)import pyopenpose导入模块出错
python版本不对
conda install python=3.6
降版本之后,根据提示没安装的包进行安装
安装过程太慢了 延迟时间
pip --default-timeout=1000 install -U 模块名
后面网络原因下载不下来,用镜像加速
pip install scikit-image -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
然后按照上述办法进行重新编译caffe openpose。
6.st-gcn
(1)下载模型
cd torchlight python3 setup.py install cd ..
在tools目录下:
get_models.sh
(2)测试
python3 main.py demo --openpose '/root/openpose/build' --video '/root/st-gcn/resource/media/ta_chi.mp4'
我这里运行失败,结果发现好像是这个测试文件有问题换了个就可以了。
(3)报错
1)根据ST-GCN/AS-GCN报错cannot import name “import_class“_小Aer的博客-CSDN博客
2)每次都输入测试命令,安装依赖、改名字
改成:torchlight.torchlight.io (原import torchlight to import ...)
比如:ModuleNotFoundError: No module named ‘yaml‘
pip install pyyaml;pip install h5py;
pip install str2bool;pip install scikit-video(根据提示安装包)
下面总结一下出现过的其他问题:
1.sudo apt-get update有几个包没有被完全安装或卸载
sudo apt-get clean sudo apt-get update sudo apt-get install ***
2.安装包Y执行后终止