俗話說,環(huán)境配不對,學習兩行淚。本文為保姆級別的教程,詳細介紹了Windows、Mac和Ubuntu的深度學習環(huán)境配置方法及問題,幫助卡在環(huán)境配置的小伙伴們,解決入門難關。?>>加入極市CV技術交流群,走在計算機視覺的最前沿
入門深度學習,很多人經歷了從入門到放棄的心酸歷程,且千軍萬馬倒在了入門第一道關卡:環(huán)境配置問題。俗話說,環(huán)境配不對,學習兩行淚。如果你正在面臨配置環(huán)境的痛苦,不管你是Windows用戶、Ubuntu用戶還是蘋果死忠粉,這篇文章都是為你量身定制的。接下來就依次講下Windows、Mac和Ubuntu的深度學習環(huán)境配置問題。一、Windows系統(tǒng)深度學習環(huán)境配置
系統(tǒng):Win10? 64位操作系統(tǒng)
安裝組合:Anaconda+PyTorch(GPU版)+GTX1060
1.1 打開Anaconda Prompt
1、conda create -n pytorch python=3.7.0:創(chuàng)建名為pytorch的虛擬環(huán)境,并為該環(huán)境安裝python=3.7。2、activate pytorch:激活名為pytorch的環(huán)境NVIDIA控制面板-幫助-系統(tǒng)信息-組件
2020年5月19日16:46:31,我更新了顯卡驅動,看到我的cuda支持11以內的1.3 確定pytorch版本,torchvision版本進入pytorch官網:https://pytorch.org/get-started/locally/https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/接著第一步,在pytorch環(huán)境下進行安裝,依次輸入如下指令。然后回到虛擬環(huán)境所在目錄,用conda install anaconda安裝環(huán)境所需的基礎包
from future import print_functionimport torchx = torch.rand(5, 3)print(x)
import torchtorch.cuda.is_available()
如果以上兩段代碼輸出無異常,表明環(huán)境搭建成功。- 用下面命令創(chuàng)建虛擬環(huán)境報錯
conda create -n py37_torch131 python=3.7
【解決方法】https://blog.csdn.net/weixin_42329133/article/details/102640763環(huán)境會保存在Anaconda目錄下的envs文件夾內
- PackagesNotFoundError: The following packages are not available from current channels
https://www.cnblogs.com/hellojiaojiao/p/10790273.html【解決方案】https://mirror.tuna.tsinghua.edu.cn/help/anaconda/cuda歷史版本下載:https://developer.nvidia.com/cuda-toolkit-archive要看NVIDIA的組件,自己的CUDA支持哪個版本,我是1060顯卡,所以我下的10.0版本的cuda這里我直接(別忘了先進入剛創(chuàng)建的環(huán)境)conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
- jupyter note如何進入虛擬環(huán)境
python -m ipykernel install --name 虛擬環(huán)境名
1.打開Anaconda Prompt,輸入conda env list 查看現有環(huán)境2.輸入activate name(name是你想切換的環(huán)境)3.conda install ipykernel 安裝必要插件4.python -m ipykernel install --name Name 將環(huán)境添加到Jyputer中(Name是此環(huán)境顯示在Jyputer中的名稱,可自定義)jupyter kernelspec remove 內核名稱[Errno 13] Permission denied: ‘/usr/local/share/jupyter’為此,需要添加–user選項,將配置文件生成在本賬戶的家目錄下。python -m ipykernel install --user --name py27-caffe-notebook
至此,添加kernel完成。查看已有的kernel:jupyter kernelspec remove kernelname
以上的命令刪除僅僅是配置文件,并沒有卸載相應虛擬環(huán)境的ipykernel,因此若要再次安裝相應python虛擬環(huán)境的kernel,只需激活虛擬環(huán)境,然后python -m ipykernel install --name kernelname
conda install --offline 包名
安裝組合:Anaconda+PyTorch(GPU版)
2.1 安裝Anaconda
Anaconda 的安裝有兩種方式,這里僅介紹一種最直觀的- macOS graphical?install。https://www.anaconda.com/products/individual里,Anaconda Installers的位置,選擇Python 3.7 下方的“64-Bit Graphical Installer (442)”。下載好pkg 安裝包后點擊進入,按下一步完成安裝即可。默認安裝地點為~/opt。想用command line install 的,請自行參考:https://docs.anaconda.com/anaconda/install/mac-os/
2.2 確認下載情況
確保安裝的Python 是3.x 版本。在Terminal 輸入在網頁右上角點擊Quit,或返回Terminal,command + c,退出notebook。
2.2.1 常見問題
如果電腦中下載了多個Anaconda,運行時可能出現沖突。在Terminal 中輸入如果只能看到一個Anaconda 版本就沒有問題。如果有多個則下載包時有可能
造成一定的沖突。用vim、nano 或其他文本編輯器把舊版本Anaconda 的
2.3 虛擬環(huán)境和包的下載
用conda 去創(chuàng)建虛擬環(huán)境和下載對應的包是很簡單的一件事。點擊Anaconda-Navigator,可以看到自己下載好的應用程序,左上角“Applications?on”應該指向的是“base (root)”,左邊點擊“Environments”就可以看到自己建立的虛擬環(huán)境和對應的包了。點擊左下角的Create 即可創(chuàng)建一個新的虛擬環(huán)境。輸入環(huán)境名稱和python 的版本,點擊create 進行創(chuàng)建。之后在Home 頁面,確保左上角指向的是你剛剛創(chuàng)建的環(huán)境名,在這個環(huán)境下install jupyter notebook,注意原本裝的notebook 是在base 里的,不可通用。回到Environments 中,可以看到在此環(huán)境中的所有包,左上方選擇All,然后輸入想要下載的包名用command line 完成以上的操作也很簡潔。這次以Pytorch 為例。在Terminal 中輸入conda create --name env_name
就可以創(chuàng)建一個虛擬環(huán)境,叫“env_name”。輸入即可看到創(chuàng)建了的所有虛擬環(huán)境,其中打* 的就是當前環(huán)境。輸入一般情況下Mac 是不支持CUDA 的。進入https://pytorch.org/ 可以看到pytorch 官網顯示當前設備應該用的下載語句。此情況,我的是conda install pytorch torchvision -c pytorch
復制下來,粘貼到Terminal 中運行就可以開始下載了。import torchimport torchvision
print(torch.__version__)print(torchvision.__version__)
國內如果直接用conda 下載,可能會很慢。可以換下載源進行加速。換源方法可參考下列資料中的Linux 部分:https://zhuanlan.zhihu.com/p/87123943。conda 下載中常會出現“Solving environment: failed...”的問題,如果正常創(chuàng)建虛擬環(huán)境,這位問題應該就是沒有問題的,如果還發(fā)生,可以再創(chuàng)建一個虛擬環(huán)境。conda 的社群很大,基本上遇到的問題很有可能有人遇到、有人解答,Google會是一個很好的解決辦法。安裝組合:Anaconda+PyTorch(CPU版)或PyTorch(GPU版)Anaconda和Python版本是對應的,所以需要選擇安裝對應Python2.7版本的還是Python3.7版本或其他版本的,根據自己的需要下載合適的安裝包。下載鏈接:https://www.anaconda.com/download/#linux點擊下面的64-Bit (x86) Installer (522 MB),下載64位的版本。下載完后的文件名是:Anaconda3-2020.02-Linux-x86_64.sh。cd到Anaconda3-2020.02-Linux-x86_64.sh所在的目錄:執(zhí)行bash Anaconda3-2020.02-Linux-x86_64.sh開始安裝:這里直接回車安裝到默認路徑,或者在>>>后輸入自定義路徑等待安裝進度條走完,然后出現下面的提示,yes是加入環(huán)境變量,no是不加入環(huán)境變量,這里我們以輸入no為例接下來手動加入環(huán)境變量,先cd到~,然后編輯.bashrc文件:sudo vim .bashrc# 區(qū)分anaconda python與系統(tǒng)內置pythonalias python3="/usr/bin/python3.5"alias python2="/usr/bin/python2.7"
. /home/cxd/anaconda3/etc/profile.d/conda.sh
輸入source .bashrc來執(zhí)行剛修改的初始化文檔下面輸入conda env list來試試環(huán)境變量是否設置成功:試試剛剛設置的使用內置python的命令:python2、python3如果到這就結束的話,大家安裝包的時候肯定會無比煎熬~這里需要將anaconda換一下源(加入清華源):然后我們創(chuàng)建一個名為pytorch的虛擬環(huán)境,發(fā)現報了下面的錯誤:原因是我們沒有清除上次安裝留下來的源,輸入sudo vim ?.condarc,修改該文件的內容(記得刪除default那行):然后輸入source .condarc,再次創(chuàng)建虛擬環(huán)境:
3.2 pytorch cpu版本安裝
打開pytorch官網:https://pytorch.org/激活剛剛創(chuàng)建的虛擬環(huán)境:conda activate pytorch在安裝之前先添加下面這個源:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
conda install pytorch torchvision cpuonly -c pytorch
import torchprint(torch.__version__)
3.3?pytorch-gpu安裝
3.3.1 GPU驅動安裝
執(zhí)行命令:' ubuntu-drivers devices'== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==modalias : pci:v000010DEd00001C8Dsv00001028sd0000086Fbc03sc02i00vendor : NVIDIA Corporationmodel : GP107M [GeForce GTX 1050 Mobile]driver : nvidia-driver-390 - distro non-freedriver : nvidia-driver-435 - distro non-freedriver : nvidia-driver-440 - distro non-free recommendeddriver : xserver-xorg-video-nouveau - distro free builtin
== /sys/devices/pci0000:00/0000:00:14.3 ==modalias : pci:v00008086d0000A370sv00008086sd000042A4bc02sc80i00vendor : Intel Corporationmodel : Wireless-AC 9560 [Jefferson Peak]manual_install: Truedriver : backport-iwlwifi-dkms - distro free
大家可以看到,這里有個設備是GTX1050。推薦安裝驅動是440。sudo ubuntu-drivers autoinstall
sudo apt install nvidia-440
3.3.2 安裝cuda
cuda安裝需要對應合適的顯卡驅動。下面是驅動和cuda的版本對應關系Table 1. CUDA Toolkit and Compatible Driver VersionsCUDA Toolkit Linux x86_64 Driver Version Windows x86_64 Driver VersionCUDA 10.2.89 >= 440.33 >= 441.22CUDA 10.1 (10.1.105 general release, and updates) >= 418.39 >= 418.96CUDA 10.0.130 >= 410.48 >= 411.31CUDA 9.2 (9.2.148 Update 1) >= 396.37 >= 398.26CUDA 9.2 (9.2.88) >= 396.26 >= 397.44CUDA 9.1 (9.1.85) >= 390.46 >= 391.29CUDA 9.0 (9.0.76) >= 384.81 >= 385.54CUDA 8.0 (8.0.61 GA2) >= 375.26 >= 376.51CUDA 8.0 (8.0.44) >= 367.48 >= 369.30CUDA 7.5 (7.5.16) >= 352.31 >= 353.66CUDA 7.0 (7.0.28) >= 346.46 >= 347.62
cuda下載鏈接:http://suo.im/6dY8rLInstaller Type選擇第一第二個都可。但是要在獲得cuda文件后先檢測gcc版本。下面以第一個runfile(local)安裝方式為例。linux一般會自帶了gcc,我們先檢測一下自己系統(tǒng)的gcc版本而cuda的gcc依賴版本在官方文檔的安裝指南上會給出如果版本和cuda依賴gcc不對應,就安裝cuda需要的版本sudo apt-get install gcc-7.0sudo apt-get install g++-7.0
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 50
sudo update-alternatives --config gcc
選擇 路徑 優(yōu)先級 狀態(tài)------------------------------------------------------------* 0 /usr/bin/gcc-9 50 自動模式 1 /usr/bin/g++-9 50 手動模式 2 /usr/bin/gcc-7 50 手動模式
sudo sh cuda_你的版本_linux.run
export PATH=/usr/local/cuda-10.2/bin${PATH:+:$PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
3.3.3?安裝cudnn
https://developer.nvidia.com/cudnn ? ?選擇對應cuda的版本即可然后將cudnn解壓后的include和lib64文件夾復制到cuda中sudo cp cuda/include/cudnn.h /usr/local/cuda-10.2/include #解壓后的文件夾名字為cuda-10.2 sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h /usr/local/cuda-10.2/lib64/libcudnn*
3.3.4 安裝pytorch-gpu
# 選擇自己對應的cuda版本conda install pytorch torchvision cudatoolkit=10.2
pip install torch torchvision -i https://pypi.mirrors.ustc.edu.cn/simple
所有的深度學習環(huán)境安裝指南到這里就結束了,希望能解決你面臨的環(huán)境配置難題。關于實踐項目,可以結合阿里天池的學習賽進行動手實踐。
https://tianchi.aliyun.com/competition/entrance/231784/forumhttps://tianchi.aliyun.com/competition/entrance/531795/forumhttps://tianchi.aliyun.com/competition/entrance/531810/forum
推薦閱讀
添加極市小助手微信(ID : cvmart2),備注:姓名-學校/公司-研究方向-城市(如:小極-北大-目標檢測-深圳),即可申請加入極市目標檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術交流群:每月大咖直播分享、真實項目需求對接、求職內推、算法競賽、干貨資訊匯總、與?10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~覺得有用麻煩給個在看啦~??