玩玩机器学习1——ubuntu16.04 64位安装TensorFlow GPU+python3+cuda8.0+cudnn8.0
??????? 如今的機器學(xué)習(xí)運算大多數(shù)都是利用gpu進行,包括很大大型游戲,比特幣的開采,都離不開GPU的運算,GPU已成為大型運算能力的主要硬件。
?????? 大名鼎鼎的機器學(xué)習(xí)開源框架,如TensorFlow和Caffe,Caffe2都建議使用GPU作為運算平臺,有些著名的機器學(xué)習(xí)開源項目如Detectron物體檢測更是明確要求了必須使用GPU作為運行環(huán)境。網(wǎng)上有開發(fā)者曾經(jīng)提及到,使用GPU的運算效率起碼是使用CPU的十倍以上。基于上述原因,我也著手搭建一個GPU運行環(huán)境,不過遇到了許多“新手坑”,浪費了不少時間調(diào)試,因此,這里寫份博客來讓有興趣搭建GPU機器學(xué)習(xí)環(huán)境的小伙伴們,少走些歪路,更好地進行機器學(xué)習(xí)的研究。
????? 在這里首先要感謝兩位作者,一是提供了CUDA和CUDNN的正確方法的
https://blog.csdn.net/ZWX2445205419/article/details/69429518,
? ? ? 另外一位則是提出了安裝過程中許多人曾經(jīng)遇到的黑屏、循環(huán)登錄的解決辦法
https://blog.csdn.net/AutoRobot410/article/details/52862479
?
1.安裝前準(zhǔn)備
GPU型號:NVIDIA GTX750 Ti
1.1 Verify You Have a CUDA-Capable GPU(確認(rèn)你有一個可用CUDA的GPU)
$ lspci | grep -i nvidia
可以看到,我有三塊可用的GeForce GTX 1080,你可以在這里查看你的GPU是否是CUDA-caplable。
1.2 Verify the System Has gcc Installed(查證你是否安裝了gcc)
$ gcc --version?2.下載對應(yīng)cuda和cudnn
cuda 8.0 Linux下載地址:https://developer.nvidia.com/compute/cuda/8.0/prod/local_installers/cuda_8.0.44_linux-run
cuda v6.0 Linux下載地址:cuDNN v6.0 (April 27, 2017), for CUDA 8.0
?3,使用以下命令查看Noueau驅(qū)動是否被加載
$ lsmod | grep nouveau # 如果打印出一些信息,說明Noueau被加載了,正常情況下會打印出一些關(guān)于nouveau的信息創(chuàng)建/etc/modprobe.d/blacklist-nouveau.conf,寫入:
blacklist nouveau options nouveau modeset=0- ?
Reboot into text mode (runlevel 3)(重啟,進入文本模式)
重啟后按: Ctrl+Alt+F1 進入文本模式
?
停止X服務(wù)
$ sudo /etc/init.d/lightdm stop?
sudo sh cuda_8.0.61_375.26_linux.run-
此處千萬不要選安裝“Install Graphics Driver”!!!這樣是重新安裝顯卡驅(qū)動,百分之百是不匹配的,千萬不能選,很有可能導(dǎo)致你重啟后一直循環(huán)登錄!!
安裝完成后重啟桌面服務(wù)
$ sudo service lightdm start- ?
?在系統(tǒng)環(huán)境里設(shè)置CUDA的路徑
$ vim ~/.bashrc # 編輯- ?
~/.bashrc 的最后中添加如下代碼
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH export CUDA_HOME=/usr/local/cuda-8.0 export PATH=/usr/local/cuda-8.0/bin:$PATH- ?
- ?
安裝cuDNN
cd到cuda的安裝目錄執(zhí)行解壓命令:
$ cd /usr/local $ sudo tar -xzvf ~/downloads/cudnn-8.0-linux-x64-v5.1.tgz- ?
這樣就完成了cuDNN的安裝。
驗證CUDA是否安裝完成和CUDA版本:
$ nvcc -V?
在ubuntu自己可以自動匹配找到相應(yīng)的驅(qū)動的,當(dāng)然你也可以自己根據(jù)自己服務(wù)器上的顯卡型號去官網(wǎng)下載相應(yīng)的驅(qū)動。
或者,如下:
我的已經(jīng)按好了,應(yīng)該是要重啟一次的,會有提示。
接著再運行一下:
nvidia-smi?
安裝Python3.5.2版本和pip3
sudo apt install python3-pip?
從清華大學(xué)開源鏡像網(wǎng)安裝tensorflow-gpu1.3.0
pip3 install https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/gpu/tensorflow_gpu-1.3.0-cp35-cp35m-linux_x86_64.whl運行Python的TensorFlow測試代碼
import tensorflow as tf import numpy as np hello=tf.constant('luyanjie') sess=tf.Session() print (sess.run(hello))出現(xiàn)GPU的信息則安裝成功
?
?
?
?
其中遇到的錯誤
1,安裝完CUDA后重啟,一直循環(huán)進入登錄界面,這時意味著你要卸載原有的顯卡驅(qū)動,重新安裝
進tty:Ctrl+Alt+F3
關(guān)閉X:
sudo service lightdm stop然后卸載之前可能存在的驅(qū)動:
sudo apt-get --purge remove nvidia*只需一條命令
sudo apt-get install nvidia-有人問上面那條命令沒寫完啊,其實就是寫這么多,然后猛擊tab鍵兩次(也可以輕點),下面就會出來許多版本的驅(qū)動,當(dāng)然是安裝一個版本最高的,例如
sudo apt-get install nvidia-352即可。
?
sudo reboot?
2,提示內(nèi)核錯誤
The driverinstallation is unable to locate the kernel source. Please make surethat the kernel source packages are installed and set up correctly.If you know that the kernel source packages are installed and set upcorrectly, you may pass the location of the kernel source with the'--kernel-source-path' flag.
經(jīng)過google和百度,得知原因很簡單:cuda9.1和 ubuntu16.04中l(wèi)inux內(nèi)核4.13不兼容!
好吧,看來內(nèi)核4.13.0不能用,要換成4.4.0。
更換內(nèi)核
linux更換內(nèi)核很簡單,一個系統(tǒng)中可以安裝多個內(nèi)核,也可以在開機的時候通過grub來選擇要啟動的內(nèi)核。首先我們要做的是先看自己系統(tǒng)中現(xiàn)在存在幾個內(nèi)核。
提前了解
使用uname -r查看當(dāng)前使用的內(nèi)核。
然后我們明確幾個有關(guān)內(nèi)核的文件:
- /etc/default/grub 定義了有關(guān)啟動過程的一系列設(shè)置,比如設(shè)置內(nèi)核啟動順序、系統(tǒng)等待啟動時間、或者啟動過程中相關(guān)設(shè)置等;
- /boot/grub/grub.cfg 注意一下這個文件是由上一個文件而自動生成的,不建議修改這個文件的內(nèi)容
- /etc/grub.d 是操作系統(tǒng)菜單目錄,也是由系統(tǒng)生成,我們也不用修改。
更換方法
我當(dāng)前的內(nèi)核是4.13.0,我要安裝4.4.0的內(nèi)核,使用下面的命令:
sudo apt-get install linux-headers-4.4.0-98-generic linux-image-4.4.0-98-generic執(zhí)行完這個命令之后,可以到/boot/grub中看現(xiàn)在存在的kernels
安裝完新的內(nèi)核后,更換到新的內(nèi)核(并不是新版本,我就是從4.13轉(zhuǎn)為4.4)的方法:
- 進入grub啟動界面,在系統(tǒng)啟動時按住shift一段時間即可,選擇你剛才安裝的內(nèi)核即可(每次都要這樣選,有點麻煩)。
- 查看當(dāng)前內(nèi)核啟動順序grep menuentry /boot/grub/grub.cfg,然后修改/etc/default/grub中的內(nèi)容修改GRUB_DEFAULT,默認(rèn)為0,根據(jù)順序改成你要啟動的內(nèi)核順序就行(從0開始)。
- 第二個方法有可能失敗,終極方法是刪除掉所有多余內(nèi)核!直接修改/boot/grub/grub.cfg中的內(nèi)容:在/boot/grub目錄中,執(zhí)行sudo rm -rf *4.13.0-38*這個命令是刪除掉這個目錄內(nèi)所有4.13內(nèi)核的文件,然后將/boot/grub/grub.cfg中所有有關(guān)4.13的信息全部刪除。全部給為新的內(nèi)核。
修改/etc/default/grub中GRUB_DEFAULT=”Ubuntu,Linux 4.4.0-98-generic“
最后弄完別忘了執(zhí)行sudo update-grub來對你之前的設(shè)置進行更新。
如有問題,請咨詢我的qq:1290851757,備注:csdn博客問問題的
總結(jié)
以上是生活随笔為你收集整理的玩玩机器学习1——ubuntu16.04 64位安装TensorFlow GPU+python3+cuda8.0+cudnn8.0的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 职业梦想是计算机的英语作文,理想职业英语
- 下一篇: java49_java培训 java49