安裝GPU版本的tensorflow過程總結


安裝tensorflow

安裝完了后再用pip去安裝tensorflow的指令如下:$ sudo pip install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0-cp27-none-linux_x86_64.whl

安裝完成后import tensorflow時如果出現錯誤:ImportError: numpy.core.multiarray failed to import

這是因為numpy的版本不對,應該更新下numpy,方法如下:

先卸載之前的numpy:

sudo apt-get remove python-numpy

由於scipy依賴於numpy,所以卸載完numpy之后相當於scipy包也跟着一起被卸載了(其他依賴於numpy的包一樣)

然后再用pip的方式重新安裝numpy:

sudo pip install numpy

或者對numpy進行升級:

sudo pip install -U numpy

之后還得再重新安裝一下scipy的包:

sudo apt-get install python-scipy

 

更新tensorflow

如果顯示沒有tf.summary.FileWriter這個函數,那么就是由於tensorflow的版本不夠高導致,因為tensorflow1.0及以上才有這個函數

首先卸載之前的tensorflow:

sudo pip uninstall tensorflow

然后將tensorflow升級,在官網上下載tensorflow的whl文件,我下載的是最新的1.3版本

https://github.com/tensorflow/tensorflow

下載完輸入如下指令安裝即可:

sudo pip install --upgrade tensorflow_gpu-1.3.0rc0-cp27-none-linux_x86_64.whl

安裝完tensorflow后import tensorflow卻出現了:

ImportError: libcudnn.so.6.0 cannot open shared object file: No such file or directory

這是因為該tensorflow對應的libcudnn得是6.0版本的,所以換成6.0版的就可以了,cudnn6.0版下載鏈接如下:

https://www.zhihu.com/question/37082272

http://pan.baidu.com/s/1hs23HrA

安裝了tensorflow1.3之后

在import tensorflow.contrib的時候出現下面這個error:

Tensorboard AttributeError: ‘module’ object has no attribute ‘cpu_count’

解決方法:

sudo pip install --upgrade psutil

psutil是一個跨平台庫,能夠輕松實現獲取系統運行的進程和系統利用率(包括CPU、內存、磁盤、網絡等)信息。將這個庫更新就好了 

卸載tensorflow:

sudo pip uninstall tensorflow //卸載python2.7下的
sudo pip3 uninstall tensorflow //卸載python3下的

 

運行tf-openpose代碼踩過的坑:

配置python3.4的時候首先安裝pip3

sudo apt-get install python3-pip

出現requires setuptools >= 0.8 for dist-info support.這種錯誤時

 輸入以下命令即可:

sudo pip3 install setuptools --no-use-wheel --upgrade

安裝python3.4版本對應的tensorflow的時候注意去官網:

https://www.tensorflow.org/install/install_linux#common_installation_problems

然后按照里面的提示安裝最新1.4版本的

sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.4.0-cp34-cp34m-linux_x86_64.whl

 

安裝python3下的opencv:

http://blog.csdn.net/qingyuanluofeng/article/details/51558270

http://blog.csdn.net/fireflychh/article/details/73970244

 

安裝opencv的時候一直卡在下載ippicv的地方

http://blog.csdn.net/huangkangying/article/details/53406370

 

安裝opencv出現modules/cudalegacy/src/graphcuts.cpp:120:54: error: ' NppiGraphcutState ' has not been declared 

在raphcuts.cpp中將

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)

改為

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

 

安裝完tensorflow的時候出現AttributeError: type object 'NewBase' has no attribute 'is_abstract',原因是six沒有更新

I solved this problem on mac osx doing this :
python
import six
Then we localize the package six:
>>> six.__file__
'/Library/Python/2.7/site-packages/six.pyc'
Then we upgrade the concerned package
sudo pip install six --upgrade --target="/Library/Python/2.7/site-packages/"

 

提示找不到spicy模塊,但是不能用sudo apt-get install python3-spicy安裝,因為這樣的話,安裝的是老版本的,並且這樣安裝了之后還會影響numpy

應該用下面的方式安裝

sudo pip3 install spicy
sudo pip3 install numpy

 

如果用pip install安裝或者卸載tensorflow不成功,甚至是安裝或者卸載了python3.4下的tensorflow,那么可能是usr/local/bin下的pip軟鏈接沒有指向pip2.7,而是指向了pip3,改一下軟鏈接就可以了

 

更改cudnn版本

spyder環境下,利用GPU模式下的tesorflowcnn時,出現

E tensorflow/stream_executor/cuda/cuda_dnn.cc:390]Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source wascompiled with 5110 (compatibility version 5100).  If using a binary install, upgrade your CuDNNlibrary to match.  If building fromsources, make sure the library loaded at runtime matches a compatible versionspecified during compile configuration.

F tensorflow/core/kernels/conv_ops.cc:605]Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

這個問題

原因:大概就是cudnn版本不符合,我的是5.0,官網要求的是5.1

更新cudnn首先要下載一個cudnn的壓縮包,可以官網上下,也有網盤

鏈接:http://pan.baidu.com/s/1slPfR8x 密碼:g4fv

然后將這個壓縮包解壓到主文件夾,會自動命名為cudacuda文件夾下有includelib64兩個文件夾

1、刪除原來的cudnn系統路徑下的一些文件

sudo rm -rf /usr/local/cuda/include/cudnn.h

sudo rm -rf /usr/local/cuda/lib64/libcudnn*   #這里*是通配符,libcudnn*指的是名字中帶有libcudnn的所有文件

2、安裝剛才解壓的cudnn版本,在終端cd到剛解壓的cuda文件夾,然后繼續輸入下面兩個指令,這兩個指令相當於把解壓后的cuda文件夾下的一些文件拷到系統路徑下面

sudo cp include/cudnn.h /usr/local/cuda/include/

sudo cp lib64/lib* /usr/local/cuda/lib64/       #這里*是通配符,lib*指的是名字中帶有lib的所有文件

3、在系統路徑下建立軟鏈接(解壓出來的lib64下面有3so文件。分別是 libcudnn.so libcudnn.so.5以及 libcudnn.so.5.1.3文件。 並且這3個點so文件大小都一樣。其實都是軟連接!libcudnn.so鏈接到libcudnn.so.5,而libcudnn.so.5.又鏈接到libcudnn.so.5.1.3。 真正的文件只有libcudnn.so.5.1.3

cd /usr/local/cuda/lib64

sudo chmod +r libcudnn.so.5.1.10

sudo ln -sf libcudnn.so.5.1.10 libcudnn.so.5

sudo ln -sf libcudnn.so.5 libcudnn.so

sudo ldconfig


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM