电脑配置:ubuntu18.04, Titan Xp, 驱动390.116,cuda9.1, cudnn 7.3
因为tensorflow-gpu 需要cuda9.0版本,所以要继续安装cuda9.0
GPU nvidia-smi 指令参数详解:https://blog.csdn.net/huangfei711/article/details/79230446
1.先gcc 降级
https://blog.csdn.net/yy2yy99/article/details/88572476
2.安装依赖项及cuda
https://blog.csdn.net/p397226804/article/details/87873990
3.修改~/.bashrc文件 报错 command not found : shopt
添加的是https://blog.csdn.net/yy2yy99/article/details/88572476 这里的四行
解决办法:https://blog.csdn.net/qq_36148847/article/details/79261067
~/.zshrc
source ~/.zshrc
4.nvcc -V 查看是否安装成功
5.安装cudnn
https://blog.csdn.net/weixin_41399111/article/details/84898307
cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include
#随后切换到lib64文件夹下
cd lib64
sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd #回到主目录下
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有的链接,不一定是so.7,取决于你之前安装的版本
sudo ln -s libcudnn.so.7.3.10 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so
sudo ldconfig
查看版本 安装成功
cuda 版本
nvcc -V
cat /usr/local/cuda/version.txt
cudnn 版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
新开终端,输入nvcc -V 还是cuda9.1,import tensorflow报错
输入指令:
source ~/.zshrc
nvcc -V
-----------------------
cuda 9.0
import tensorflow 成功
-----------------------
6.安装opencv
pip install opencv-python #python2
#如果安装失败,改成pip2 install opencv-python
pip3 install opencv-python #python3
如果报错:
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': /simple/setuptools/
......
可能是因为数据源的问题,下载太慢了,可以更换下载源,设置-软件与更新-下载自-其他站点-选择最佳服务器
或者离线安装,先把包下载下来,再安装pip install xxx.whl
运行tensorflow-yolov3 tensorflow-gpu 1.11.0 python2.7 cuda9.0 出现的bug
python image_demo.py #报错
=====================================================
cv2.error: .... inv_scale_x>0 in function 'resize'
=====================================================
这里错误比较明显,是inv_scale_x<=0了,注意:python2.7中两个整数相除得到的还是整数,而在python3中两个整数相除默认得到的是浮点数。
这里在core/util.py中,
image_preprocess()函数中,修改为scale = min(float(iw)/w,float(ih)/h)
postprocess_boxes()函数中,修改为resize_ratio = min (float(input_size)/org_w, float(input_size)/org_h);