0.前言
今年暑假買了個1660ti的遊戲本學python,後來發現跑一些數據量比較大的代碼和深度學習的時候太慢了,遂想裝一下GPU版本,看了網上的資料搞了好幾天,又是CUDA又是cudnn的,網速慢不說,裝完還各種報錯,最後發現隨着anaconda和tensorflow的更新,現在利用anadonda只要一行命令就能完成。(裝好虛擬環境後,直接看4.2)
1. 安裝anaconda
這部分沒啥難度,只要注意兩點:
1.去官網下載https://www.anaconda.com/distribution/,而不要去清華的鏡像站(已經很久沒有更新了),官網下比清華慢一點,但相信我這是值得的。
2.安裝的時候建議直接把兩個勾都選上(網上的其他教程都建議不勾選然後手動添加PATH,但我發現直接勾上沒問題,之後加PATH反而有各種問題出現)
#.如果之前電腦裏已經有安裝python,建議先卸載再裝anaconda,這樣能避免很多問題
做完這一步你就擁有了一個預裝了很多包的base環境,包括pandas和numpy,足夠初學者做很多事情了。
2. 換清華源
雖然上面說anaconda的安裝包不要去清華上下,但是用鏡像站來下載和更新python包還是可以的(能快上不少)。打開CMD,複製打入就行
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --set show_channel_urls yes
3.創建一個另外的虛擬環境
起先看網上教程的時候一直不明白這一步有什麼用,處理了很多報錯以後發現這是爲了避免依賴包版本衝突。例如你在官網上下載的anaconda,自帶的base環境是python3.8,而tensorflow是建議裝python3.6,它要求的各種依賴包也是python3.6時代的,直接在base環境下安裝,需要將本來是最新的軟件包降級,可能會影響其他包,最新的功能就用不到了。
所以創建虛擬環境可以完全避免依賴包衝突,需要使用tensorflow的時候切換過來就行。
3.1 打開CMD(如果你把anaconda裝在了C盤,建議使用管理員運行,可以事先避免權限報錯),鍵入:
conda create -n env_gpu python=3.6
(env_gpu是你給虛擬環境起的名字,依個人喜好就行,網上大多叫tensorflow或者env_tf2,我這邊叫env_gpu是因爲我用這個環境來跑需要gpu加速的任務:tensorflow-gpu和cupy)
按y回車,anaconda就會安裝一些必須的包(換源之後是很快的)
4. 在虛擬環境下安裝tensorflow-GPU(用於機器學習)和cupy(numpy的GPU加速版本)
4.1 首先激活虛擬環境:
conda activate env_gpu
(整個第4步的cmd都別關掉,用同一個,假如手滑關了,就要再激活一次虛擬環境)
可以看到前面有個括號表明所在的環境
4.2.安裝tensorflow-gpu和cupy
conda install tensorflow-gpu=2.0.0
conda install cupy
(一行一行來)
可以看到anaconda會自動安裝匹配版本的cuda和cudnn,不用去英偉達官網下載了,也避免了操心版本問題。
4.3 安裝spyder, jupyter notebook
因爲我們在第三步創建了一個獨立的虛擬環境,和原來base環境裏的spyder和jupyter notebook是不通用的,所以在這個環境下手動安裝一個就行:
conda install spyder
conda install jupyter
安裝完以後可以在開始菜單搜索spyder,(anaconda)結尾的是base環境下的spyder, (env_gpu)結尾的是這個環境下的spyder。
5.測試一下吧
5.1 打開spyder(env_gpu)
5.2 鍵入一些測試的code
5.3 cupy也導入測試下
都沒有報錯,大功告成!