Anaconda+CUDA+cuDNN+Tensorflow2.0環境搭建
- 前言
- 搭建環境初期遇到的問題
- 參考硬體環境
- Anaconda3
- Win10
- 安裝
- 使用
- 鏡像
- Ubuntu
- 安裝
- Tensorflow環境搭建
- Win10
- Step 1:創建虛擬環境(關于Anaconda虛擬環境和其他常用命令我會后續寫一篇文章細講)
- Step 2:安裝tensorflow
- Step 3:PyCharm添加虛擬環境
- Step 4:驗證tensorflow是否已安裝完成
- Step 5:將tensorflow搭建在GPU上
- Ubuntu
- Step 1:更改驅動
- Step 2:添加Nvidia倉庫
- Step 3:安裝CUDA和cuDNN
前言
? 這是博主第一次寫CSDN的博客,本人還是大學生一枚,如果有忽略的點請各位大哥大姐們指正,
? 今年博主就是個大四萌新了,想著繼續沖擊一把讀研,研究生想走的方向也是深度學習相關方向,因此把原本電腦上的win10換成了ubuntu,換了之后在安裝Tensorflow和pytorch的路上瘋狂采坑,接連重裝了三次Ubuntu,一度將Ubuntu20.04降版本為18.04,而關于我在學習使用Ubuntu時的問題和解決方案我也會在后續的文章中列出,
搭建環境初期遇到的問題
? 博主在學習使用初期是在本機上搭的煉丹爐,而后來發現了一系列問題諸如:
? (1)目前主流的深度學習框架如PyTorch和Tensorflow基本上是基于N卡的GPU,需要使用者安裝CUDA支持,而pytorch和tensorflow的版本對cudatoolkit又有著不同的對應版本要求,不同版本的cudatoolkit可能在運行框架代碼時無法找到對應的檔案,cudatoolkit版本與顯卡驅動版本之間,甚至針對linux kernel和gcc/g++版本之間也有互相對應(參考圖1-1和圖1-2),過于繁雜的對應關系,導致在環境搭建時及其容易導致環境沖突或者環境不滿足,最后無法正常運行甚至把作業系統搞壞不得不重裝(我之前不熟悉Ubuntu apt的功能時為了重新安裝g++洗掉舊版本的時候不小心把作業系統搞壞過,最后導致XServer、apt等一系列功能全部失效,不得不重裝(后期博主也會發一份重裝Ubuntu的教程,為防止各位和傻乎乎的我一樣)),


? (2)Linux的原裝驅動Nouveau并不支持CUDA,因此需要禁用掉Nouveau并且重裝N卡官方驅動,會有很多同學在不知道的情況下安裝了cuda,最后導致pytorch和tensorflow無法使用或者CUDA無法安裝等問題,而且更換顯卡驅動的時候也會出一些問題,比如博主在更換為N卡官方驅動的時候,當時使用的是Ubuntu20.04,不知為何在進入bios里關掉Enable Security Boot的時候,直接就進不去了,導致無法正常安裝驅動,不得已才降版本為Ubuntu18.04,20.04雖然速度快的多,但是bug同樣也多,尤其是snap商店不顯示應用的問題,
? (3)在安裝完成CUDA之后,還需要安裝cuDNN這一GPU加速庫,否則無法正常運行tensorflow,這些下文都會講到
? (4)之前我的朋友想讓我買個AMD的顯卡外接訓練資料,但是A卡并不支持CUDA,雖然可以將CUDA代碼轉為OpenCL,但是想要適配A卡的生產環境極其麻煩,這邊不考慮A卡,

? 本文是關于如何在win10以及Ubuntu環境下搭建Anaconda3+CUDA+cuDNN+tensorflow深度學習環境,我會分步驟分系統慢慢給同學們講,有人會問為什么不用原生python呢,是因為anaconda它香啊,conda和pip的差別我不在這里贅述了,大家可以參考知乎上一篇文章https://www.zhihu.com/question/395145313,博主的anaconda是完全使用命令列的,因為我的Navigator第一次打不開,后來也就沒再用過,后續隨著學習的深入我應該會出一篇關于pycharm或vscode(我主要還是用pycharm作為IDE)+docker的tensorflow煉丹爐搭建教程,
參考硬體環境
這里是我使用的兩臺筆記本電腦的性能引數
-
HP OMEN
- OS: Windows 10 Home Edition
- CPU: Intel? Core? i7-9750H CPU @ 2.60GHz
- Memory: 2*8G DDR4 2666MHZ
- GPU: Nvidia Geforce RTX2060
-
DELL Precision 7530
- OS: Ubuntu 18.04 LTS
- CPU: Intel? Core? i7-8750H CPU @ 2.20GHz
- Memory: 2*8G DDR4 2666MHZ
- GPU: Nvidia Quadro P1000
Anaconda3
- 備注:博主這邊雖然是通過清華鏡像站安裝的anaconda3,但是我并沒有使用清華的conda或者pip鏡像,我是直接采用科學上網(懂的都懂)的辦法安裝的第三方庫,但是我依然會在下面附上使用鏡像和設定鏡像的方法
Win10
安裝
-
首先進入清華鏡像站下載Anaconda3,我這邊使用的是Anaconda3-5.3.1版本
-
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

-
下載完成后點擊exe執行檔案安裝,注意不要安裝vscode,我嘗試過根本安裝不上
使用
- 在win10中我并不太喜歡直接用shell輸入conda activate環境來進入anaconda的虛擬環境,我喜歡直接使用anaconda提供的Anaconda Prompt,它是一種和shell十分相似的命令列環境,好處就是不需要再添加anaconda的環境變數也能夠執行conda的一系列命令

- 運行方式:右鍵以管理員身份(建議,因為環境存在讀寫權限問題)運行Anaconda Prompt
鏡像
-
與pip相似,如果采用默認的channel進行下載,在國內是非常慢的,因此需要采用鏡像,在配置anaconda的國內源鏡像前,我這邊先把pip國內鏡像源和使用方法附在下面
鏡像名稱 鏡像地址 阿里云 http://mirrors.aliyun.com/pypi/simple/ 豆瓣 http://pypi.douban.com/simple/ 清華大學 https://pypi.tuna.tsinghua.edu.cn/simple/ 中國科學技術大學 http://pypi.mirrors.ustc.edu.cn/simple/ 華中科技大學 http://pypi.hustunique.com/ pip install [module_name] -i [mirror_address] pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/ -
Anaconda鏡像安裝(以清華源為例,win10和Ubuntu步驟相同,因此不再贅述)
- 終端輸入
conda config --set show_channel_urls yes這個命令會在當前目錄下生成組態檔.condarc
- 修改組態檔
win10中用任意文本編輯器打開即可
ubuntu中使用命令
sudo gedit .condarc將以下配置資訊復制粘貼進.condarc檔案保存
channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud如果使用conda install 任意包顯示清華鏡像源的資訊則說明配置成功
Ubuntu
安裝
-
依然是先進入清華鏡像站下載Anaconda3-5.3.1
-
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
-
這次我們下載的是

-
由于我們是64位的系統,因此下載x86_64的版本
-
隨后進入到下載目錄
cd 下載 -
輸入命令運行安裝檔案
bash Anaconda3-5.3.1-Linux-x86_64.sh
博主由于已經安裝過anaconda了,因此將安裝檔案換了個位置,你如果是在谷歌或者火狐瀏覽器上下載的話默認是放在"~/下載"這個目錄里
-
然后就是看一堆license,copyright宣告了,這些大家一定不要快速敲回車,容易進入到下一步了還在摁回車
-
隨后是問你同不同意這個license,不同意就無法安裝,因此我們輸入yes

-
接下來是讓你選擇安裝的路徑,默認是安裝在當前用戶的家目錄下,由于博主已經安裝過了,所以博主將目錄改到我掛載的其中一個硬碟上(關于Ubuntu開機自動掛載硬碟的知識我也會在后面介紹)

-
接下來默默等待進入下一步就行
-
接下來它會提示是否需要initialize Anaconda,這個其實是為你的用戶添加環境變數,由于Ubuntu中沒有prompt,因此我們使用shell來進行conda命令操作,因此我們輸入yes(由于博主已經安裝過了,不想再動環境變數,就輸了no)

-
接下來會問你是否需要安裝VSCode,這里我們選擇no,似乎是因為Anaconda安裝包VSCode配置的問題,我們沒法成功安裝上VSCode,但是后續我們可以自行安裝VSCode,這個不用擔心

-
安裝完成
-
我們來驗證一下,輸入
conda -V或者
conda --version若顯示以下資訊說明安裝成功

Tensorflow環境搭建
參考https://www.tensorflow.org/install/gpu?hl=zh_cn
Win10
Step 1:創建虛擬環境(關于Anaconda虛擬環境和其他常用命令我會后續寫一篇文章細講)
-
打開Anaconda Prompt
-
創建虛擬環境
conda create --name tensorflow python=3.7
-
激活虛擬環境
activate tensorflow
Step 2:安裝tensorflow
-
使用pip指令
-
pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple/
Step 3:PyCharm添加虛擬環境
-
打開pycharm–>File–>New Project

-
專案存放位置自定
-
選擇編譯器Previously configured interpreter

-
點擊路徑后的省略號進入Add Python Interpreter
-
選擇Conda Environment
-
點擊Interpreter路徑后的省略號進入Select Python Interpreter

-
選擇你Anaconda3目錄下的envs下的tensorflow目錄,并選擇里面的python.exe檔案

-
一直點OK最后點擊create
Step 4:驗證tensorflow是否已安裝完成
-
新建一個python檔案
-
輸入下面代碼查看是否報錯
-
import tensorflow -
若無報錯則說明tensorflow第三方庫安裝沒有問題
Step 5:將tensorflow搭建在GPU上
-
在剛才的python檔案內輸入
-
from tensorflow.python.client import device_lib print(device_lib.list_local_devices())

-
如果輸出結果如上圖所示說明你當前只有CPU設備可用,如果有輸出GPU設備的各項屬性則說明你之前已經搭建過了CUDA+cuDNN的環境
-
接下來開始進行GPU環境搭建
-
以管理員身份打開cmd
-
輸入nvidia-smi指令

-
若無該指令則需要手動安裝一下Nvidia Driver,建議直接安裝百度搜索Nvidia GeForce Experience,這個應用是英偉達官方安裝N卡驅動的神器(windows專屬)
-
查看Driver Version(驅動版本)和CUDA Version(這個引數并非你已安裝的CUDA,而是你驅動可適配的CUDA Toolkit版本)
-
隨后查看自己先前是否有安裝CUDA Toolkit
- 在控制臺輸入nvcc -V

-
如果有以上資訊則無需再安裝CUDA Toolkit
-
如果沒有則可以前往https://developer.nvidia.com/cuda-toolkit-archive根據自己適配的CUDA進行安裝

-
這里博主選擇的是CUDA Toolkit 11.4.0

-
根據自己的電腦系統選擇版本下載exe安裝就可以了
- CUDA盡量安裝在C盤
-
安裝完成后重新在控制臺上輸入nvcc-V查看是否安裝完成
- cudnn的安裝與CUDA掛鉤,我直接放csdn的教程了,而且比較復雜,我一會兒傳群里,你們就不用去官網下載了
-
接下來開始cuDNN的安裝
- 前往官網https://developer.nvidia.com/rdp/cudnn-archive

- 根據你CUDA的版本安裝cuDNN,我這邊選的是cuDNN v8.2.2,選擇windows x64的版本
- 隨后他會提醒你NVIDIA Developer Program需要會員資格,因此需要你去注冊一個Nvidia的賬號,再輸入你相關機構和使用目的的資訊,博主這邊輸入的是自己的學校

- 下載完成之后解壓縮,拷貝到你的cuda安裝目錄下即可
-
安裝完成后再重新跑代碼則可得GPU的引數

Ubuntu
? 在ubuntu上創建虛擬環境、安裝tensorflow第三方類別庫以及檢驗環境方法是完全一樣的,下面我著重講解一下Ubuntu18.04(CUDA 11.4)GPU支持的搭建,而且注意,不同的Ubuntu方法可能有差別,具體參考官方網站https://www.tensorflow.org/install/gpu?hl=zh_cn
? 還有一點要注意的,以下步驟盡量不要開梯子下,博主之前用梯子屢次下載不成功
? 因為之前安裝過,圖片就先不放了
Step 1:更改驅動
? 博主曾經因為手動安裝驅動出現了諸如Security Boot進入黑屏、Nouveau驅動禁用后導致電腦可視化進不去等問題,后來重裝了三遍最后確定了一個比較穩定的方案,
- Ubuntu本身自帶一個應用叫軟體和更新,如果你是正常安裝的Ubuntu(非精簡安裝),在附加驅動中應該會有不同版本的driver,默認是Linux自帶的Nouveau驅動,接下來直接選擇自己顯卡對應支持的顯卡驅動版本就可以了,具體版本可以去Nvidia官網上查詢https://www.nvidia.cn/geforce/drivers/


-
接下來等待安裝完成,安裝中途可能會出現需要你輸入用于secure boot的密碼,reboot重啟電腦,會進入Secure Boot,選擇第二還是第三個選項(具體不記得了,因為bios模式下截圖我還沒有學),進入之后命令列輸入nvidia-smi

-
若有以上資訊則安裝成功
Step 2:添加Nvidia倉庫
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
sudo apt-get update
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt-get update
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libnvinfer7_7.1.3-1+cuda11.0_amd64.deb
sudo apt install ./libnvinfer7_7.1.3-1+cuda11.0_amd64.deb
sudo apt-get update
Step 3:安裝CUDA和cuDNN
sudo apt-get install --no-install-recommends cuda-11-4 libcudnn libcudnn8-dev
-
隨后reboot重啟電腦,命令列輸入nvidia-smi, 以及nvcc -V進行驗證
-
如有需要安裝TensorRT加速庫,我也把安裝命令放在了下方
sudo apt-get install -y --no-install-recommends libnvinfer7\
libnvinfer-dev\
libnvinfer-plugin7
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298593.html
標籤:AI
