Linux服務器配置GPU版本的pytorch Torchvision TensorFlow

  最近在Linux服務器上配置項目,項目須要使用GPU版本的pytorch和TensorFlow,並且該項目內會同時使用TensorFlow的GPU和CPU。python

  在服務器上裝環境,若是從新開始,就須要下載不少依賴包,並且若是直接在系統上安裝包,可能會和服務器上的其餘包發生衝突,所以使用Anaconda建立虛擬環境來管理項目的依賴包。Anaconda的安裝能夠去清華大學的鏡像下載,速度比較快,選擇對應的版本就能夠了  https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 。我須要下載python3.6對應的Anaconda能夠對照下面這張圖片來查看,選擇Anaconda3-5.2.0版本就能夠了。(可是其實我下載成了anaconda2,不過並不影響後續使用)bash

  Anaconda下載以後會在~/.bashrc中添加一條環境變量。若是首次運行conda命令找不到,就source ~/.bashrc。服務器

  配置好Anaconda後,若是要建立虛擬環境,從新下載包也須要很麻煩的操做,並且須要對照之前的項目進行一一下載。這太撈了,咱們考慮直接將本地項目的anaconda環境打包好上傳到服務器上,就可使用本地的虛擬環境了。具體作法是,首先到本地的Anaconda環境目錄下,個人是/home/timber/anaconda2/envs ,這個目錄下就是用戶建立的anaconda環境。直接打包 app

tar -cvf name.tar your_env_name/

 而後將這個文件用scp上傳到服務器下的(anaconda2_dir)/envs下,測試

scp name.tar remote_username@remote_ip:anaconda_dir/envs

接着在服務器的anaconda的envs目錄下解壓name.tarurl

tar -xvf name.tar

 環境就移植到服務器上了,能夠在服務器上經過conda env list檢驗是否有咱們剛移植的環境。插件

  本地安裝的環境是cpu版本的pytorch和TensorFlow,首先將pytorch卸載命令行

conda activate project #激活環境
conda uninstall pytorch

 而後去清華大學的鏡像下下載pytorch(由於官方下載超級慢)。須要首先配置清華大學鏡像。orm

依次運行如下命令blog

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

上面三條是配置清華鏡像源,下面一條是配置pytorch源。而後去到官網,選擇你對應的pytorch版本,找到下載命令,好比,最新版本的Pytorch在cuda10下面的官方下載命令是

conda install pytorch torchvision cudatoolkit=10.1 -c pytorch

 可是,不要用這條命令,因爲添加了鏡像源,咱們去掉上面命令的-c pytorch,運行

conda install pytorch torchvision cudatoolkit=10.1 

 就能夠用清華鏡像下載了。若是要下載歷史版本的pytorch,以1.0爲例,就用

conda install pytorch==1.0 torchvision cudatoolkit=10.1 -c pytorch

 安裝好以後,torchvision不必定能配套使用,由於Torch已經更換了,因此可能會存在版本不一致的問題,卸載torchvision,而後下載對應版本的torchvision。

  出現的第一個問題是torchvision下沒有totensor,重裝0.2.0的torchvision。

  第二個問題是This application failed to start because it could not faind or load the Qt platform plugin "xcb" in "".

 Reinstalling the application may fix the problem.這個提示告訴咱們在Qt平臺插件中找不到XCB,提示咱們重裝,那咱們就重裝唄,重裝pyqt

conda uninstall pyqt
conda uninstall qt
conda install pyqt

   個人項目使用了GPU版本的Tensorflow,須要裝GPU版本的TensorFlow。

  這裏還有個問題是,人臉識別和車輛檢測都使用了TensorFlow,一個是CPU版本,一個是GPU版本,會有衝突嗎。TensorFlow的GPU版本是能夠跑cpu的,因此先把以前的TensorFlow卸載掉。下載了GPU版本的

conda install tensorflow-gpu==1.12.0

 可是這裏同時下載了cuda的9.0的toolkit,以前下載torch的時候使用了cuda10的toolkit,不知道會怎麼樣。測試以後發現沒有衝突。

  如今在這個項目下,有一個GPU的版本,有一個cpu的版本,同時也有兩套對應的anaconda環境與之對應,當執行GPU版本時,須要切換到anaconda的GPU環境。這種切換能夠是在命令行中

conda activate gpu

 也能夠是在pycharm中進行project intepreter設置,選中anaconda/envs/project/bin/python3.6,就是選中了該環境。

  至此,還剩最後一個問題,GPU版本的TensorFlow是默認使用gpu版本,可是GPU版本的項目有一塊是須要使用cpu版本的tensorflow的,那麼應該如何設置?

相關文章
相關標籤/搜索