在Ubuntu16.04下安裝caffe2

目錄

1.使用conda安裝(anaconda,miniconda)

2.使用conda build安裝

3.使用conda並且從源碼安裝(本人親測,可以安裝caffe2,並且可以安裝Detectron)


caffe2的安裝並不簡單,主要原因是中文博客五花八門,而官網的安裝教程又太不詳細,所以這裏根據自己親自的實踐過程寫一篇博客,方便日後查看。

首先還是安裝conda和cudnn,如果沒有安裝這兩個工具的朋友可以參考我的這篇博客:Ubuntu下安裝Cuda和cudnn

下面有兩種安裝方法,第一種方法非常簡單,如果不需要安裝Detectron的話,可以先嚐試第一種方法

1.使用conda安裝(anaconda,miniconda)

      1.1 安裝anaconda或者miniconda

安裝步驟非常簡單,可參考相關博客完成。需要注意的是要將anaconda的bin路徑放在.bashrc文件中,例如我的路徑爲

export PATH="/home/wangyuanwei/miniconda3/bin:$PATH"

運行下面的指令使環境生效

source ~/.bashrc 

      1.2 創建虛擬環境並激活

由於後續還需要安裝Detectron,而Detectron需要的Python版本爲Python2,所以在創建虛擬環境的時候就指定使用Python2。

打開終端,用下面的命令創建一個名稱爲caffe2的虛擬環境:

conda create -n caffe2 python=2.7

然後激活這個虛擬環境

source activate caffe2

       1.3 安裝caffe2

查看gcc的版本號

gcc --version

如果gcc的版本號小於5的話,可用下面的兩個命令來安裝CPU或者GPU版本的caffe2

CPU版本

conda install -c caffe2 caffe2-gcc4.8

GPU版本

conda install -c caffe2 caffe2-cuda9.0-cudnn7-gcc4.8

 如果gcc的版本號大於5,則按照自己的配置從下面的三條指令中選擇一條命令,假如cuda和cudnn都不符合下面的要求,則可以更改cudnn或者cuda的版本,具體方法可以參考我的另外一篇博客,或者使用下面介紹的從源碼安裝的方法來安裝。

CPU版本

conda install -c caffe2 caffe2

GPU版本1:cuda9.0+cudnn7.0+caffe2

conda install -c caffe2 caffe2-cuda9.0-cudnn7

GPU版本2:cuda8.0+cudnn7.0+caffe2 

conda install -c caffe2 caffe2-cuda8.0-cudnn7

       1.4 驗證caffe2 

上述安裝任務完成後,打開一個新的終端窗口,然後激活caffe2:

source activate caffe2

然後輸入下面的語句驗證是否安裝成功;

python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"

如果沒有提示異常就是安裝成功。

但是如果打算安裝 Detectron的話,這種方法不可行,可能是conda安裝的caffe2版本不夠新,所以還不支持Detectron

2.使用conda build安裝

這是從官網翻譯過來的教程(點擊進入官網教程),這種方法需要事先安裝好anaconda或者miniconda,理論上可以安裝caffe2,並且支持Detectron,不過本人沒有使用這種方法安裝過。(不過方法非常簡單,可以嘗試一下)

(1)下載源碼。

新建一個存放源碼的文件夾(最好不要有中文),然後進入該文件夾,打開終端下載源碼:

git clone --recursive https://github.com/pytorch/pytorch.git && cd pytorch

(2)安裝caffe2 

CPU版本:

./scripts/build_anaconda.sh --install-locally

GPU版本

./scripts/build_anaconda.sh --install-locally --cuda 9.0 --cudnn 7

測試caffe2

python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"

3.使用conda並且從源碼安裝(本人親測,可以安裝caffe2,並且可以安裝Detectron

(1)下載caffe2源碼

cd進入合適的路徑,將源碼存放在當前路徑中,例如我的想將caffe2 的源碼安裝在  /home/wangyuanwei/Deeplearning/目錄下,則運行下面的指令:

cd /home/wangyuanwei/Deeplearning/
git clone --recursive https://github.com/pytorch/pytorch.git && cd pytorch

(2)創建並激活虛擬環境

跟第一種安裝方法類似,首先應該安裝anaconda,創建並激活虛擬環境:

conda create -n caffe2 python=2.7  && source activate caffe2

(3)安裝所需要的安裝包

conda install -y \
    future \
    gflags \
    glog \
    leveldb \
    mkl \
    mkl-include \
    numpy \
    opencv \
    protobuf \
    six

 注意:本人在實際測試的時候發現protobuf老是出錯,原因可能是用conda 自動安裝的protobuf版本太老,也有可能是conda自動安裝的protobuf安裝包出現錯誤。所以下面的步驟非常關鍵

可以使用下面的指令卸載舊版本的protobuf,並且安裝一個新版本的protobuf(親測有效):

pip uninstall protobuf
pip install 'protobuf>=3.0.0a3'

或者使用下面的指令,從官網正式發佈包重新安裝protobuf(親測有效)

conda install -y --channel https://conda.anaconda.org/conda-forge protobuf

接着查看一下當前的protobuf版本

protoc --version

顯示版本爲 libprotoc 3.6.0,說明protobuf版本更新成功。

(4)創建build文件夾

注意當前的目錄仍然爲/home/wangyuanwei/Deeplearning/caffe2/pytorch,用下面的指令在該目錄下創建build文件夾

git submodule update --init
rm -rf build && mkdir build && cd build

(5)對caffe2的build進行配置

根據conda的安裝位置進行配置,例如我的配置爲:

cmake -DCMAKE_PREFIX_PATH=/home/wangyuanwei/miniconda3/envs/caffe2 -DCMAKE_INSTALL_PREFIX=/home/wangyuanwei/miniconda3/envs/caffe2 ..

此時cmake會輸出一堆配置信息。

(6)編譯並安裝caffe2

make install

本人安裝到20%左右的時候發生了中斷,原因是沒有使用root權限,可以使用下面的指令重新安裝:

sudo make install

(7)測試

如果protobuf沒有問題的話,應該是可以安裝成功的。輸入下面的兩個指令測試:

python2 -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo 

python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'

如果出現類似“ImportError: No module named caffe2.python”的錯誤的時候,則需要給系統添加一下Python的環境:

打開.bashrc文件,在最後一行添加如下路徑

export PYTHONPATH=/home/wangyuanwei/Deeplearning/caffe2/pytorch/build:$PYTHONPATH

然後運行下面的命令讓環境生效:

source ~/.bashrc 

此時重新打開一個新的終端窗口,並且激活caffe2環境,再次運行上面的測試程序就不會再出錯了。

至此安裝成功!
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章