tensorflow的安裝和注意事項


想了一下還是把tensorflow安裝的過程整理一下吧,萬一時間久了忘了呢。

終於tensorflow的安裝可以告一段落了,內心還是很興奮的,這次還是好好的整理下。

尤其是注意的地方,往往時我折騰了好久,查閱了大量的資料,測試了好多次,才驗證出來的碩果。

1、准備工作

  1、更換源,好的軟件源,直接決定你的安裝速度。這里選擇清華的。

  操作:進入:設置 --> 軟件和更新 --> Ubuntu軟件,打開下載自:選擇 其他,選擇清華。點擊 選擇服務器 確認,在彈出框選擇,重新載入。

  2、更新軟件包,防止有些工具沒有安裝上。

sudo apt update

  3、打開:設置 --> 軟件和更新 --> 附加驅動

  選擇NVIDIA公司專有的最新驅動,選擇應用更改。時間較長,請耐心等待。

2、安裝cuda

  下載文件,這里我選擇run本地文件,進入文件所在目錄,並運行,XXX代指文件名,歷史版本

sudo sh XXX.run

  安裝注意,這時會出現很多信息,按ctr+c關閉信息,再按accept接受。

  接下來詢問是否,安裝驅動,輸入n,不要安裝。因為已經安裝過。

  一路輸入y,或者回車。

  進入/home/用戶名/NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery,打開終端,輸入

sudo make

  然后輸入

./deviceQuery

  如果顯示pass,說明cuda安裝成功,如果顯示說,cuda驅動不滿足於cuda運行庫,說明驅動太舊,或者cuda太新。參照修改。

3、下載並安裝cudnn(本段參照於http://blog.csdn.net/m0_37924639/article/details/78785699)

  下載cudnn,安裝CUDNN

  進入CUDNN安裝包所在目錄,執行以下命令:

sudo dpkg -i runtime包.deb
sudo dpkg -i developer包.deb
sudo dpkg -i 代碼sample包.deb

  報錯查看此項https://blog.csdn.net/u011636567/article/details/77162217

  至此,CUDNN安裝完成。

  驗證CUDA和CUDNN是否安裝成功

  CUDNN的code sample可以用來檢查CUDNN和CUDA是否安裝成功,執行以下命令:

sudo cp -r /usr/src/cudnn_samples_v7/ $HOME
cd $HOME/cudnn_samples_v7/mnistCUDNN
sudo make clean
sudo make
sudo ./mnistCUDNN

  正常情況下執行以上代碼會得到Test passed!的結果。如果在make步出錯,那么可能gcc需要降級(由於一直未出現類似錯誤,作者未驗證);

  如果出現CUDA driver version is insufficient for CUDA runtime version,說明你的顯卡驅動版本低於cuda工具包的版本。

  如果下載的是壓縮包,那個運行庫,可以使用下面的。

cd  /home/***(自己的用戶名)/Desktop/###(這個命令意思是找到剛剛我們用U盤傳過來的文件)
tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz###(解壓這個文件)
sudo cp cuda/include/cudnn.h /usr/local/cuda/include###(復制)
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64###(復制)
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

4、版本說明

  1、顯卡驅動要高於cuda版本,cudnn要選擇和cuda版本一樣的

  2、建議安裝的cuda版本和驅動的版本一致,比如我的驅動目前只能是384.11(9.0版本),最好安裝cuda工具包9.0

  3、安裝對應的cudnn9.0

4、安裝tensorflow  

在配置完cudnn之后,可以直接在終端輸入

sudo pip install tensorflow==1.5.0

或者安裝CPU版本

sudo pip install tensorflow==1.5.0

如果網速不好的話,也可以自己在https://github.com/tensorflow/tensorflow下載whl文件,往下翻,在installation下面,然后使用

 

sudo pip install xxx.whl

 5、簡便安裝的方法

如果確定了自己的顯卡支持的最高版本驅動,可以直接參照下面的方法:

1、cuda的下載和安裝

  下載適合你的cuda版本(包含驅動,即驅動版本)

  關閉目前的圖形界面,

sudo service lightdm stop

  按住ctr + alt + f1,進入命令行界面,輸入帳號和密碼,並且登錄。

  進入你的cuda下載目錄,比如我的在Download里面

cd Download
sudo sh XXX.run --silent --overide

  不輸入參數,先accept,一路y或者回車默認

  打開圖像界面

sudo service lightdm start

  進入圖形界面,按下ctr + alt + f7

  進入用戶主路徑

cd ~

  進入cuda的例子make並且運行,驗證是否正確安轉cuda

cd /home/shuailing/NVIDIA_CUDA-9.0_Samples/1_Utilities/deviceQuery
make
./dedeviceQuery

  如果最后一行顯示pass,說明安裝成功。

  注意:這個方法,我在工作站安裝成功,在自己的電腦上失敗,出現的現象時,反復登錄。

  解決方法:先安裝顯卡驅動,在安裝cuda,在安裝cuda的時候,詢問是否安裝cuda驅動(顯卡驅動),選擇否。

  如果,出現了重啟可以切換回之前的驅動。

2、下載並安裝cudnn

  下載cudnn,安裝CUDNN

  進入CUDNN安裝包所在目錄,執行以下命令:

sudo dpkg -i runtime包.deb
sudo dpkg -i developer包.deb
sudo dpkg -i Codesample包.deb 

注意:這里需要按照這個順序來進行,負責最后的代碼測試包,是無法安裝的。

  如果測試說,找不到,libdart文件,說明沒有把 cuda的lib庫加入LD_LIBRARY_PATH中。

  這個之前也加入過,但是總是有其他的意外,這里把加入環境變量,再說一便。

sudu gedit .bashrc

  把下面兩行加入.bashrc最后

export PATH=$PATH:/usr/local/cuda-9.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64

  輸入下面命令使其立即生效,之前的cudnn測試的窗口。需要重新打開,才能更新新的環境變量。

source .bashrc

  如果是解壓放入到庫中的,還需要對其libcudnn進行鏈接,ln -s 源文件 目標文件

3、安裝tensorflow-gpu

  下載tensorflow-gpu,之后進入下載路徑

  pip安裝

sudo pip install tensorflow_gpu-1.6.0-cp27-cp27mu-manylinux1_x86_64.whl

這個tensorflow-gpu==1.6.0,需要實測,cuda9+cudnn7.0可以用,之前用cuda9+cudnn7.1運行程序說,找到cudnn7.1版本,但是期望是7.0。程序報錯。

4、驗證

python
import tensorflow

  不報錯說明安裝成功。  

6、源碼安裝

1、克隆tensorflow

git clone https://github.com/tensorflow/tensorflow

2、進入下載目錄的tensorflow主目錄,配置編譯環境

./configure

  除了Cuda、Cudnn相關的yes,其余的不相關的都選擇n。剩下的默認回車就好。

3、完成之后編譯

sudo bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
sudo mkdir /tmp/tensorflow_pkg
sudo bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
sudo pip install/tmp/tensorflow_pkg/tensorflow-1.2.0rc2-cp27-cp27mu-linux_x86_64.whl

  之前因為權限不夠,編譯出錯不加載,執行第三條說找不到文件。現在全部加了權限。

4、參照上面的測試

 5、最后的注意:

  描述:在我運行程序的時候,終端運行正常使用GPU,可是在pycharm中運行就報錯,說找不到libcublas.so.9.0.源碼編譯的時候也說找不到/usr/bin/ld的什么文件。

  嘗試的方法:tensorflow降級,結果不可以。實際上我的cuda和cudnn都是要求的9.0和7.0,明明在/usr/local/cuda/lib64中可以找到這個文件的。可是不論是降級還是配置cudnn的libcudnn.so的鏈接都不行。

  后來,在手機上偶然查到。

  解決方案:在/etc/ld.so.conf中最后一行添加/usr/local/cuda-9.0/lib64。或者在ld.so.conf.d這個目錄新建一個檔案,以.conf結尾(建議),最后輸入sudo ldconfig使其立即生效。

  解釋:其實上面那個含有libculas的路徑,正常的已經被添加到LD_LIBRARY_PATH中了,可是程序運行的時,不一定回讀到這個變量,所以需要設置/etc/ld.so.conf把,含有libcublas的路進加入的系統中。


免責聲明!

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



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