本文以u(píng)buntu18.04為系統(tǒng)建立深度學(xué)習(xí)環(huán)境配置,針對(duì)筆記本雙系統(tǒng)。
1. 系統(tǒng)安裝
在Ubuntu官網(wǎng)下載最新的ubuntu18.04鏡像文件。找一個(gè)空u盤制作系統(tǒng)啟動(dòng)盤,安裝系統(tǒng)。建議安裝英文版本。本文實(shí)驗(yàn)對(duì)象主要針對(duì)的是筆記本windows雙系統(tǒng)版本的一個(gè)安裝。(切記給ubuntu分配多點(diǎn)的內(nèi)存,數(shù)據(jù)很大,且搭配固態(tài)效果更佳。)
運(yùn)行下列命令,做好一些鋪墊:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
2.安裝Nvidia顯卡驅(qū)動(dòng)
由于一些系統(tǒng)默認(rèn)顯卡驅(qū)動(dòng)的原因,網(wǎng)上的PPA安裝顯卡驅(qū)動(dòng)的方式并不可以直接安裝,且安裝過程的網(wǎng)速極其緩慢,所以本文在安裝顯卡驅(qū)動(dòng)這一步選擇采用的是從官網(wǎng)下載合適的驅(qū)動(dòng)文件,從文件安裝。
2.1 首先禁用Ubuntu18.04默認(rèn)的系統(tǒng)顯卡驅(qū)動(dòng)
打開系統(tǒng)名單,運(yùn)行以下命令:
sudo gedit /etc/modprobe.d/blacklist.conf
將下列代碼增加到blacklist.conf文件的末尾:(都是黑名單)
#for nvidia display device installblacklist vga16fbblacklist nouveaublacklist rivafbblacklist rivatvblacklist nvidiafb
保存,然后在命令行中更新initramfs,運(yùn)行:
sudo update-initramfs -u
重新啟動(dòng)計(jì)算機(jī),運(yùn)行:
sudo reboot
運(yùn)行以下命令,查看是否禁用成功,若無輸出則禁用成功:
lsmod | grep nouveau
2.2 Nvidia顯卡驅(qū)動(dòng)安裝
首先卸載之前安裝過的顯卡驅(qū)動(dòng)(如果之前安裝過,安裝失敗的什么的),確保卸載干凈。
sudo apt-get --purge remove nvidia-*
在Nvidia的驅(qū)動(dòng)官網(wǎng)下載適合自己的驅(qū)動(dòng)文件。根據(jù)官網(wǎng)顯卡分類進(jìn)行選擇,如GTX800series(Notebook)。選擇合適的版本。由于不同的版本顯卡驅(qū)動(dòng)對(duì)CUDA版本支持的情況是不同的。所以選擇的時(shí)候根據(jù)CUDA需要選擇對(duì)應(yīng)的穩(wěn)定版本。
本文測(cè)試的是CUDA9.0+410驅(qū)動(dòng)(下載下來文件為NVIDIA-Linux-x86_64-410.78.run)
運(yùn)行以下命令,賦予下載下來的驅(qū)動(dòng)文件可執(zhí)行的權(quán)限
sudo chmod +x NVIDIA-Linux-x86_64-410.78.run
運(yùn)行下列命令安裝驅(qū)動(dòng),并按照提示安裝。(ubuntu18是不需要關(guān)閉圖像化界面安裝的,但ubuntu16需要關(guān)閉圖像化界面。方便一些,而且少很多網(wǎng)上出現(xiàn)的安裝問題)
sudo ./NVIDIA-Linux-x86_64-410.78.run
在命令框中輸入下列命令,若輸出下列,則安裝成功
nvidia-smi
更新內(nèi)核,并重新啟動(dòng)計(jì)算機(jī)
sudo update-initramfs -u
sudo reboot now
3.降低g++/gcc版本
3.1 安裝相關(guān)依賴庫
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
3.2 由于CUDA的gcc/g++的版本要求是5.x或6.x,所以需要降低系統(tǒng)的gcc/g++版本
gcc --version #查看gcc版本
#5.x gcc/g++版本安裝:
sudo apt-get install gcc-5
sudo apt-get install g++-5
3.3 通過命令換掉系統(tǒng)版本
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50
4.安裝CUDA9.0
進(jìn)入CUDA官網(wǎng)下載相對(duì)應(yīng)的文件,選擇相對(duì)應(yīng)的版本,目前官網(wǎng)無ubuntu18的選項(xiàng),選擇ubuntu17.04或16.04均可,總共有五個(gè)文件按照官網(wǎng)相應(yīng)的順序及命令安裝即可。
sudo sh cuda_9.0.176_384.81_linux.run #仔細(xì)閱讀每一個(gè)安裝的選項(xiàng),在進(jìn)行下一步,其中有一步是安裝顯卡驅(qū)動(dòng),選擇no,前面已經(jīng)安裝了。
sudo sh cuda_9.0.176.1_linux.run
sudo sh cuda_9.0.176.2_linux.run
sudo sh cuda_9.0.176.3_linux.run
sudo sh cuda_9.0.176.4_linux.run
在~/.bashrc 中添加環(huán)境變量:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}#添加PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
#大括號(hào){}里面的意思類似于程序語句,將新加入的路徑加入到原PATH中,PATH中有很多路徑
運(yùn)行生效,完全生效重啟
source ~/.bashrc
sudo reboot now
重啟后,測(cè)試CUDA是否成功,若Result = PASS,表明CUDA安裝成功。
cd ~/NVIDIA_CUDA-9.0_Samples/1_Utilities/deviceQuery
make -j4
sudo ./deviceQuery
5.安裝CUDNN
CUDNN是一個(gè)常見神經(jīng)網(wǎng)絡(luò)的加速庫,簡單的來說與CUDA相比,其是更加優(yōu)化的神經(jīng)網(wǎng)絡(luò)加速工具。
在CUDNN官網(wǎng)下載相對(duì)應(yīng)版本的CUDNN文件,這里需要注冊(cè)一個(gè)賬號(hào)。一定要根據(jù)系統(tǒng)之前的版本選擇對(duì)應(yīng)的合適版本。
我這里下載的是cudnn-9.0-linux-x64-v7.4.1.5.tgz對(duì)應(yīng)CUDA9.0
用tar命令解壓,得到cuda的文件夾:
tar -zxvf cudnn-9.0-linux-x64-v7.4.1.5.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*
6.安裝Virtualenv/Anaconda/Miniconda
virtualenv將python環(huán)境單獨(dú)分離出來,更加輕巧。Anaconda相對(duì)來說功能更為強(qiáng)大。
下面簡單的記錄一些基本的用法,具體的更詳細(xì)的可以訪問官方文檔或他人詳細(xì)的博客等。
6.1 Virtualenv的安裝及其使用
sudo apt-get install python2.7 python2.7-dev#安裝python2.7 便于創(chuàng)建2.7的環(huán)境,2020年python2.7將不再會(huì)獲得支持,而今年已經(jīng)2019了。
sudo apt-get install virtualenv#安裝virtualenv
創(chuàng)建及刪除環(huán)境
virtualenv -p /usr/bin/python3.6 pytorch_1.0_36 #指定python編輯器版本3.6,創(chuàng)建一個(gè)名為pytorch_1.0_36的環(huán)境
source ./pytorch_1.0_36/bin/activate #啟動(dòng)環(huán)境
deactivate #關(guān)閉環(huán)境
rm -r pytorch_1.0_36 #刪除環(huán)境
#virtualenv不指定位置則是在當(dāng)前目錄下創(chuàng)建的環(huán)境,其路徑是絕對(duì)路徑,所以Virtualenv創(chuàng)建的環(huán)境位置無法移動(dòng),否則會(huì)出問題。
在激活的環(huán)境中安裝pytorch:
#pip可以更改源到阿里,速度會(huì)快很多
mkdir ~/.pip
cat > ~/.pip/pip.conf << EOF
#輸入下面結(jié)果
[global]
trusted-host=mirrors.aliyun.com
index-url=http://www.tjdsmy.cn/pypi/simple/
EOF
#安裝pytorch
pip3 install torch torchvision
6.2 Anaconda/Miniconda的安裝及其使用
下載
從Anaconda官網(wǎng)下載文件,建議安裝Miniconda,感覺更輕量級(jí)一些,占用的空間也少很多。
安裝
bash Anaconda3-5.3.0-Linux-x86_64.sh #這個(gè)自帶的pyhon=3.7
創(chuàng)建及刪除環(huán)境
conda create --name pytorch_1.0_36 python=3.6 #創(chuàng)建python為3.6的虛擬環(huán)境
conda activate pytorch_1.0_36 #激活環(huán)境
conda deactivate #退出環(huán)境
conda remove --name pytorch_1.0_36 --all #刪除pytorch_1.0_36環(huán)境
6.3 總結(jié)
ubuntu中python是最大的依賴項(xiàng),virtualenv與conda最大的區(qū)別在于python環(huán)境的獨(dú)立性。相對(duì)來說virtualenv略微的獨(dú)立一些。
7.其他
windows上的一些sublime文本編輯器,chrome都可以在這上面安裝,效果也非常好,命令如下:
wget -q -O - http://www.tjdsmy.cn/linux/linux_signing_key.pub | sudo apt-key add -
sudo apt-get update
sudo apt-get install google-chrome-stable
啟動(dòng)Chrome 瀏覽器,位置在/usr/bin/google-chrome-stable,隨后添加到狀態(tài)欄。
也可以在設(shè)置中安裝中文輸入源,這樣搜索一些中文也很方便,但系統(tǒng)還是推薦英文。(關(guān)閉圖形化界面的黑框不支持中文)