引言
這里介紹下本篇文章的目的,為了方便自己日后在其他主機(jī)上搭建環(huán)境,也為了幫助遇到相同問題的人。本篇文章主要是解決ubuntu20.04搭建機(jī)械臂視覺抓取的環(huán)境部署問題。第一個(gè)環(huán)境了ROS環(huán)境,第二個(gè)環(huán)境是深度學(xué)習(xí)yolov5的環(huán)境。
1.ubuntu20.04搭建ros noetic環(huán)境
這里推薦魚香ros的便攜式安裝方法,這里感謝魚香ros作者,真的是大大減少了ros環(huán)境安裝的工作量。直接復(fù)制粘貼下面這條指令,然后根據(jù)指令來安裝ros noetic就行了,非常的省心。
wget http://fishros.com/install -O fishros && . fishros
2.ubuntu20.04環(huán)境下yolov5的環(huán)境配置
這里,先理一下思路。要在ubuntu20.04下運(yùn)行yolov5。需要的條件有哪些:
1.對應(yīng)的顯卡驅(qū)動
2.對應(yīng)的cuda
3.對應(yīng)的cudnn
4.對應(yīng)的anaconda
5.對應(yīng)的pytorch
2.1對應(yīng)的顯卡驅(qū)動
(1)安裝前需要的依賴
sudo apt-get update #更新軟件列表
#安裝編譯依賴
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install make
(2)查看電腦主機(jī)的GPU型號
lspci | grep -Ei '(vga|display)'
或者
lspci | grep -i nvidia
或者
lspci | grep -i vga
這里顯示了ubuntu下我GPU的型號是2208
然后,我們打開這個(gè)網(wǎng)址鏈接,《GPU型號查詢網(wǎng)址鏈接: link》
將2208輸入到JUMP左邊的方框里,就得到了電腦主機(jī)的GPU型號。
當(dāng)然,如果事先知道GPU型號的可以忽略此步驟。
(3)Nvidia官網(wǎng)下載適配版本的驅(qū)動
Nvidia驅(qū)動下載鏈接: link
打開鏈接地址后,根據(jù)GPU型號下載對應(yīng)的NVIDIA驅(qū)動程序,選好之后點(diǎn)擊搜索,彈出窗口進(jìn)入下一步,確認(rèn)無誤后點(diǎn)擊下載。這就把nvidia驅(qū)動程序下載好了。
(4)刪除之前安裝過的與NVIDIA相關(guān)的內(nèi)容,確保初始環(huán)境的干凈
sudo apt-get remove --purge nvidia*
(5)禁用nouveau
原因:nouveau是ubuntu系統(tǒng)的驅(qū)動程序,在安裝nvidia驅(qū)動前需要將nouveau給禁用,這樣才不會影響nvidia的正常工作。通過如下指令打開blacklist文件。
sudo gedit /etc/modprobe.d/blacklist.conf
在blacklist文件的末端加上如下兩句代碼,保存并退出。
blacklist nouveau
options nouveau modeset=0
(6)環(huán)境更新,并重啟電腦
sudo update-initramfs -u
# 然后電腦重啟系統(tǒng)
sudo reboot
重啟完電腦后,終端中輸入下面指令,如果沒有輸出,則代表nouveau已經(jīng)被禁用了。
lsmod | grep nouveau
(7)安裝nvidia驅(qū)動
這里建議在主目錄下(也就是home下)創(chuàng)建個(gè)空文件夾,(這里我自定義的文件夾a1)把剛才下載的nvidia驅(qū)動文件放在這個(gè)空文件下,這樣待會比較容易找到該nvidia驅(qū)動文件。
終端輸入如下指令,進(jìn)行nvidia驅(qū)動的配置。
sudo telinit 3
進(jìn)入到配置界面。這里login就寫ubuntu系統(tǒng)的用戶名 password就是登錄ubuntu的密碼。
然后就是輸入下列指令,等系統(tǒng)提示Stopping gdm3.
sudo /etc/init.d/gdm3 stop
然后輸入指令ls,查看當(dāng)前的位置,我們的目的是通過cd指令,將其移動到之前裝有nvidia驅(qū)動文件的文件夾下。
當(dāng)找到nvidia文件后,便執(zhí)行下面兩條指令。
sudo chmod 777 NVIDIA-Linux-x86_64-*.run #給你下載的驅(qū)動賦予可執(zhí)行權(quán)限,才可以安裝
sudo ./NVIDIA-Linux-x86_64-*.run –no-opengl-files #安裝
之后系統(tǒng)就會自己執(zhí)行了。遇到要做選擇的。默認(rèn)yes就可以了。
最后,安裝完成后,輸入下列指令讓ubuntu重啟下就大功告成了。
sudo service gdm3 start
(8)nvidia驅(qū)動安裝完成效果圖
輸入下面指令,查看nvidia的Driver API。
nvidia-smi
?。。?!注意,這里顯示的CUDA Version12.0指的是此主機(jī)最大可兼容的版本。既不代表主機(jī)已經(jīng)安裝好cuda的意思,也不代表當(dāng)前cuda版本的意思。
2.2對應(yīng)的CUDA
根據(jù)2.1小節(jié)的信息已經(jīng)知道了此主機(jī)適配的cuda版本不得超過12,這里我們選擇的版本是11.6
(1)cuda卸載,保證安裝前的環(huán)境干凈
sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \
"*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*"
sudo apt-get autoremove
(2)下載cuda文件
cuda下載的鏈接: link
這里選擇CUDA Toolkit 11.6.0 (January 2022), Versioned Online Documentation這個(gè)版本
這里選擇Linux -> X86_64 -> Ubuntu -> 20.04 -> runfile(local)
然后就會提供下列兩行指令。
先別急,在安裝cuda11.6之前先安裝一些依賴的庫文件,指令如下
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
然后將上圖中出現(xiàn)的兩條指令在終端中輸入。
wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run
sudo sh cuda_11.6.0_510.39.01_linux.run
運(yùn)行上面的指令后,會彈出如下指令。這里鍵盤輸入accept接著還有個(gè)需要注意的地方,在下一個(gè)界面這里。利用鍵盤的空格鍵將Driver這個(gè)選項(xiàng)搞空掉,然后上下鍵控制光標(biāo)到Install這里,鍵盤回車就可以了。
(3)配置cuda環(huán)境
通過如下指令,打開bashrc文件。
sudo gedit ~/.bashrc
在bashrc文件內(nèi)最低端復(fù)制粘貼上如下指令,并保存退出就完事了。
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
(4)驗(yàn)證cuda安裝是否成功
打開終端,輸入如下指令,查看cuda的runtime API。當(dāng)發(fā)現(xiàn)版本為11.6時(shí),則表明cuda已經(jīng)成功安裝了。
nvcc -V
2.3對應(yīng)的cudnn
(1)下載cudnn
cudnn的網(wǎng)址鏈接: link
需要注意,cudnn下載需要郵箱注冊個(gè)帳號,這里問題不大,應(yīng)該都會的,就不講了。
接下來,選擇cudnn版本。 這里點(diǎn)擊Archived cuDNN Releases這個(gè)地方,跳轉(zhuǎn)到新界面。選擇適合cuda11.6版本的cudnn。
第一步選擇Download cuDNN v8.4.1 (May 27th, 2022), for CUDA 11.x
第二部選擇Local Installer for Linux x86_64 (Tar)
然后就等待文件下載完成就好了。
(2)配置cudnn
打開存放cudnn文件的文件夾,一般都存放在下載這里,對cudnn進(jìn)行解壓。
然后對cudnn文件里的兩類文件cudnn.h libcudnn復(fù)制到新的文件夾下就可以了。
可以直接到cudn文件夾下打開終端進(jìn)行操作。因?yàn)閡sr文件都需要管理員身份才能進(jìn)行操作。所以需要用sudo.
tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
(3)檢查cudnn
cuda-11.6代表著我下載的cuda版本是11.6。.根據(jù)下載的cuda版本進(jìn)行改動就可以進(jìn)行cudnn檢測了。
cat /usr/local/cuda-11.6/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
2.4對應(yīng)的anaconda
(1)下載anaconda
這里先放出anaconda下載的鏈接: link
再貼上下載的anaconda版本
接著在anaconda文件所處的文件中打開終端,輸入指令
bash Anaconda3-2021.11-Linux-x86_64.sh
之后就是一直選擇yes就可以了。
(2)配置anaconda
通過如下指令,打開bashrc文件。
sudo gedit ~/.bashrc
在bashrc文件最低端添加下列指令。其中/home/--------的四段綠色指令為每臺主機(jī)存放conda,conda.sh,bin文件的地址。記得輸入正確。
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/linuxize/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/linuxize/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/linuxize/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/linuxize/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
(3)檢測anaconda
打開終端后先啟動anaconda環(huán)境,再輸入python
source ~/anaconda3/bin/activate
python
為了簡單起見,同時(shí)也為了anaconda不與ros系統(tǒng)其沖突。
在bashrc文件里進(jìn)行配置。通過如下指令,打開bashrc文件。
sudo gedit ~/.bashrc
通過conda deactivate設(shè)置默認(rèn)anaconda為關(guān)閉狀態(tài)。當(dāng)需要使用anaconda時(shí)候就輸入指令start_anaconda 使用指令close_anaconda關(guān)閉anaconda。指令torch則開辟名為mytorch虛擬環(huán)境。
alias torch='source activate mytorch'
alias start_anaconda='source ~/anaconda3/bin/activate'
alias close_anaconda='conda deactivate'
conda deactivate
2.5對應(yīng)的pytorch
當(dāng)我們配置好了驅(qū)動,cuda,cudnn,anaconda后,才來配置pytorch。
這里貼上pytorch的鏈接: link
這里選擇的pytorch版本為v1.12.0。它這邊在Linux and Window這里支持CUDA 11.6版本。所以我們選擇它。
(1)創(chuàng)建虛擬環(huán)境
conda create -n mytorch python=3.8
(2)激活虛擬環(huán)境,環(huán)境名為mytorch
conda activate mytorch
(3)創(chuàng)建pytorch環(huán)境(v1.12.0),對應(yīng)上圖
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.6 -c pytorch -c conda-forge
(4)檢查pytorch是否成功文章來源:http://www.zghlxwxcb.cn/news/detail-728819.html
import torch
import torchvision
# 該指令顯示pytorch版本
print(torch.__version__)
# 若cuda已安裝,將顯示true
torch.cuda.is_available()
(5)anaconda虛擬環(huán)境相關(guān)指令文章來源地址http://www.zghlxwxcb.cn/news/detail-728819.html
# 創(chuàng)建新的環(huán)境
conda create -n mytorch python==3.8
# 激活環(huán)境
conda activate mytorch
# 刪除環(huán)境
conda remove -n mytorch --all
# 退出當(dāng)前環(huán)境
conda deactivate
# 查看有那些虛擬環(huán)境
conda env list
# 查看有某個(gè)虛擬環(huán)境有那些包
conda list
到了這里,關(guān)于ubuntu20.04配置ros noetic和cuda,cudnn,anaconda,pytorch深度學(xué)習(xí)的環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!