ubuntu 18.04搭建深度學(xué)習(xí)環(huán)境(軟件部分)

步驟:
(一)ubuntu 18.04操作系統(tǒng)
(二)安裝顯卡驅(qū)動程序
(三)安裝cuda驅(qū)動程序
(四)安裝cuDNN驅(qū)動程序
(五)安裝pytorch
(六)安裝tensorflow-gpu
注:pytorch和tensorflow在系統(tǒng)環(huán)境安裝,未采用conda

(一)ubuntu 18.04操作系統(tǒng)
操作系統(tǒng)是由同事幫忙安裝,并且不帶NVIDIA顯卡驅(qū)動和CUDA驅(qū)動。因為之前安裝了一版ubuntu20.04,集成了NVIDIA顯卡驅(qū)動和CUDA驅(qū)動,出現(xiàn)驅(qū)動和tensorflow-gpu不匹配的情況,具體原因未知。所以,同事友好地重新裝了一版ubuntu 18.04,然后驅(qū)動從NVIDIA官網(wǎng)下載自行安裝。

(二)安裝顯卡驅(qū)動程序
1、下載顯卡驅(qū)動程序
驅(qū)動程序下載地址:https://www.nvidia.cn/Download/index.aspx?lang=cn
按環(huán)境進行選擇,下載界面如下:


下載后的文件格式:NVIDIA-Linux-x86_64-460.80.run(我的版本)
2、禁用默認顯卡驅(qū)動
安裝.run文件之前,禁用Ubuntu18.04默認的系統(tǒng)顯卡驅(qū)動,命令如下:

// 修改屬性
$sudo chmod 666 /etc/modprobe.d/blacklist.conf  
//用vim打開
$sudo vim /etc/modprobe.d/blacklist.conf
// 在最后一行加入以下幾句,保存退出
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
// 對剛才修改的文件進行更新
$sudo update-initramfs -u
// 最好重啟一下服務(wù)器
$sudo reboot
//若執(zhí)行完該句,沒有任何輸出,則nouveau被成功禁用
$lsmod | grep nouveau 

3、卸載舊版本的nvidia驅(qū)動
因為我的系統(tǒng)不帶nvidia驅(qū)動,可以不卸載,但如果已經(jīng)有nvidia驅(qū)動,執(zhí)行以下語句卸載:

$sudo apt-get remove --purge nvidia*

4、安裝gcc編譯
如果沒有安裝,或者版本不對應(yīng),有可能會導(dǎo)致驅(qū)動安裝失敗。(我的版本7.5.0)

$sudo apt-get  install  build-essential \\安裝gcc
$gcc --version \\檢查gcc是否安裝成功

如果有提示g++或cmake沒安裝,執(zhí)行以下語句:

$sudo apt-get install g++
$sudo apt-get install make

5、安裝新的nvidia驅(qū)動
有資料說需要關(guān)閉圖形界面,我并沒有操作這一步。直接執(zhí)行以下命令,并按提示安裝。

//進入文件所在目錄下
$cd /home/xxx/
//修改權(quán)限
$sudo chmod a+x NVIDIA-Linux-x86_64-xxx.run
//執(zhí)行安裝
$sudo ./NVIDIA-Linux-x86_64-460.80.run

安裝成功后,輸入:nvidia-smi,顯示以下界面便是成功。

更新內(nèi)核,并重新啟動計算機(這一步非必須,但最好有)

//更新內(nèi)核
$sudo update-initramfs -u
//重啟服務(wù)器
$sudo reboot now

(三)安裝cuda驅(qū)動程序
1、下載cuda驅(qū)動程序
下載地址:https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=18.04
按照版本環(huán)境進行選擇,下載界面如下:


2、安裝程序
選擇完版本后,會生成幾條安裝語句,執(zhí)行生成的語句即可,建議安裝方式采用runfile[local]:

$wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run
$sudo sh cuda_11.3.1_465.19.01_linux.run

3、配置環(huán)境變量

$sudo vim ~/.bashrc \\進入vim界面。輸入字母i,進入編輯模式
//在bashrc文件中輸入以下命令,注意修改你的cuda版本
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.1/lib64
export PATH=$PATH:/usr/local/cuda-11.1/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.1
//輸入完成后,點擊esc鍵并輸入:wq!,再按esc鍵退出vim。
//運行.bashrc文件
$source ~/.bashrc 
//重啟服務(wù)器
$sudo reboot now

4、檢查安裝成功
輸入:nvcc --version,出現(xiàn)以下界面,便是成功。


注:我安裝的明明是cuda11,nvcc -V顯示版本是9.1,不知道問題出現(xiàn)在哪里,最后也好像沒啥影響。如有大佬知道,請評論留言。

(四)安裝cuDNN驅(qū)動程序

cuDNN其實不用安裝,是把文件下載下來放在cuda指定的目錄下。
1、下載cuDNN
下載地址:https://developer.nvidia.com/rdp/cudnn-archive
下載界面如下,也是按照版本選擇的,下載后是一個壓縮包:

2、安裝

//用tar命令解壓,得到cuda的文件夾:
$tar -zxvf cudnn-11.2-linux-x64-v8.1.0.77.tgz
//拷貝相關(guān)文件到上面安裝的cuda文件中,并賦予權(quán)限:
$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*

cuDNN驅(qū)動程序就算安裝好了。

(五)安裝pytorch
安裝語句:

pip3 install torch==1.7.0+cu110 torchvision==0.8.1+cu110 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

安裝pytorch一般不太有問題,完成后按以下程序進行測試:

 //運行python (啟動命令與你上文中起的別名有關(guān))
$python3
$import torch
$torch.cuda.is_available() \\輸出True則安裝成功

可以用pytorch對cuda版本和cuDNN版本進行打?。?/p>

import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.backends.cudnn.version())

(六)安裝tensorflow
安裝語句(豆瓣源加速更快):

pip3 install tensorflow-gpu==2.4.0 -i http://pypi.douban.com/simple

這里可能遇到的問題:
1、提示:no matching distribution found for tensorflow-gpu==2.4.0
這里我踩了一個巨大的坑,我的系統(tǒng)里有兩個版本的python:python2.7和python3.6。用pip安裝tensorflow-gpu==2.4.0應(yīng)該不會成功,因為在兩個版本的情況下,pip是為python2.7安裝,python2.7最高能安裝tensorflow_gpu-1.15.0版本和tensorflow2.1.0。用pip3也安裝不成功,因為pip3的版本只能升級到9.1版本(這里不知道為什么)。最后解決的方式是:卸載了python2.7,只留python3.6,然后pip3就能升級到21.1版本,tensorflow-gpu==2.4.0安裝成功。
2、import tensorflow之后,不報錯,但提示一堆以下文字:


解決方式是:進入dtype.py,修改對應(yīng)行的代碼,把np.dtype([("quint8", np.uint8, 1)])修改為np.dtype([("quint8", np.uint8, (1,))]),一共修改了6行。
3、import tensorflow之后,不報錯,但tf.test.is_gpu_available()輸出是False。
導(dǎo)致這個問題的原因很多,我的原因是我在安裝tensorflow-gpu==2.4.0之前,安裝了tensorflow1.14.0。解決的方式是:卸載tensorflow1.14.0。
4、import tensorflow之后,tf.test.is_gpu_available()輸出是False,并提示:

解決方式一:運行sudo ln -s /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcusolver.so.11 /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcusolver.so.10,這里的路徑需要和本機保持一致。(對我沒起作用)
解決方式二:運行sudo ln -s /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcusolver.so.11 /usr/local/lib/python3.6/dist-packages/tensorflow/python/libcusolver.so.10,這里的路徑需要和本機保持一致。(對我起作用了)

測試語句:

import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 
print('GPU', tf.test.is_gpu_available())
a = tf.constant(2.0)
b = tf.constant(4.0)
print(a + b)

輸出:
GPU True
tf.Tensor(6.0, shape=(), dtype=float32)

以上安裝完畢!
參考:
https://www.landui.com/help/nshow-10631.html
https://blog.csdn.net/m0_37412775/article/details/109355044

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容