Linux安裝anaconda及pytorch, tensorflow-gpu環境 === **TL;DR 不追求最新版,追求最穩定版** * anaconda最新版 * python=3.7.3 * tensorflow=1.14 * pytorch=1.2.0 # 一、前言 * 下載及安裝Anaconda * 建立pytorch及tensorflow環境 * 備份`requirements.txt` * 進行tensorflow官方benchmark測試cuda 雖然Linux預設有python,但大部分的python執行環境都會針對python本身版本做選擇,因此不使用依賴系統python的`virtualenv`而使用方便的Anaconda,並且利用`conda`指令來建立pytorch及tensorflow-gpu的執行環境,當然也要順便裝上`opencv`以及最新的Jupyter Lab。 # 二、下載及安裝Anaconda ## 1、下載及安裝 到這邊,https://www.anaconda.com/distribution/ ,選擇Linux的x64下載,可以直接安裝,記得要用`sudo`執行即可。 ```shell wget https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh sudo chmod +x Anaconda3-2019.07-Linux-x86_64.sh sudo ./Anaconda3-2019.07-Linux-x86_64.sh ``` 就照著步驟安裝,直到完成為止。 完成後,如果不使用Anaconda時也不想要你的系統環境進入`base`環境,則輸入下面設定: ``` conda config --set auto_activate_base false ``` 就會變這樣: ![](https://i.imgur.com/Oxv83Kk.png) 要不然只要進入Linux的shell,都會有一個(base)在前面如下圖。 ![](https://i.imgur.com/fWDxLK6.png) ## 2、修改.bashrc加入`$PATH` 如果你是用`bash`,Anaconda會將一些設定寫入`~/.bashrc`,但如果你是用`zsh`,就不會幫你寫入`~/.zshrc`,因此你要自己把設定從`~/.bashrc`複製到`~/.zshrc`中。 首先開啟`~/.bashrc`,複製這一段: ``` # added by Anaconda3 2018.12 installer # >>> conda init >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$(CONDA_REPORT_ERRORS=false '/home/joshhu/anaconda3/bin/conda' shell.bash hook 2> /dev/null)" if [ $? -eq 0 ]; then \eval "$__conda_setup" else if [ -f "/home/joshhu/anaconda3/etc/profile.d/conda.sh" ]; then . "/home/joshhu/anaconda3/etc/profile.d/conda.sh" CONDA_CHANGEPS1=false conda activate base else \export PATH="/home/joshhu/anaconda3/bin:$PATH" fi fi unset __conda_setup # <<< conda init <<< ``` 把他貼到`~/.zshrc`最下面即可。 # 三 、建立tensorflow的環境 tensorflow非常挑版本,因此鎖定版本能執行比安裝最新版的重要很多,我們就鎖定下面的版本: * python=3.7.3 * tenserflow = 1.14 其它就好辦了。 ## 1、建立一個conda env 除了建立環境之外,也預先安裝了`anaconda`及`nb_conda`,讓我們在jupyter中可以選擇要建立的env,要不然不能選。 ```shell conda create -n tensorflow python=3.7.3 anaconda nb_conda ``` ## 2、安裝`tensorflow-gpu`的1.14版 建立完之後,啟動`tensorflow`的conda環境,舊版是使用`source activate`,但新版全部改成`conda activate`了。 ``` conda activate tensorflow ``` 就會變成下圖那樣。 ![](https://i.imgur.com/qXwddHc.png) 可以順便檢查pytho的版本`python --version` ![](https://i.imgur.com/Fr7AozN.png) 接著用`pip`安裝`tensorflow-gpu`並且指定版本 ```shell pip install tensorflow-gpu==1.14 ``` 順便裝上opencv,用`apt-get`裝,就會是全域性,表示所有在這個Linux下的任何conda env都可以用。 ```shell sudo apt-get install python-opencv ``` 順便安裝常用的Augmentor模組及Jupyter Lab ``` pip install Augmentor --upgrade pip install jupyterlab --upgrade ``` ## 3、將環境導出以便日後佈署時使用 確定在同一個conda env下,輸入 ```shell pip freeze > requirements.txt ``` 以後在生產環境後,安裝好nvidia driver/cuda/cudnn/conda環境之後,進入該conda env,把`requirements.txt`複製到指定目錄,就可以輸入下面指定安裝: ```shell pip install -r requirements.txt ``` ## 4、測試tensorflow-gpu是否安裝成功 在家目錄下建立一個工作目錄稱之為`workspace`,並且進入 ``` mkdir ~/workspace cd ~/workspace ``` clone在github上tensorflow的benchmark專案 ```shell git clone https://github.com/tensorflow/benchmarks.git ``` 由於我們裝的是tensorflow 1.14,而這個專案預設是較早的版本,因此我先進入將這個專案用`git checkout`到較新的版本。 ```shell cd ~/workspace/benchmark git checkout cnn_tf_v1.12_compatible ``` 接下來在該目錄執行測試程式如下: ```shell python scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py --num_gpus=1 --model resnet50 --batch_size 56 ``` 跑出下面的結果就對了 ![](https://i.imgur.com/2j6GNwQ.png) 此時gpu也會滿載如下 ![](https://i.imgur.com/4uZOpT8.png) # 四、建立pytorch的環境就簡單了 只列出指令以及常用的模組 ```shell conda deactivate conda create -n pytorch anaconda nb_conda conda activate pytorch pip install torch --upgrade pip install torchvision --upgrade pip install Augmentor --upgrade pip install cnn_finetune --upgrade pip install jupyterlab --upgrade ``` ###### tags: `pytorch` `tensorflow` `DL`