電腦配置: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('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fef2a8f8320>: 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);