1. 程式人生 > >Ubuntu16.04下caffe2安裝-解決各種錯誤的過程

Ubuntu16.04下caffe2安裝-解決各種錯誤的過程

記錄一下裝了兩天的caffe2

1、Ubuntu預設為python2.7,首先需要把python環境切換到python3.5,依次執行如下命令:
cd /usr/bin 
sudo rm python 
sudo ln -s python3.5m python
輸入python命令,檢視python版本是否切換到python3.5,然後ctrl+D退出python環境
 
2、接下來根據官網流程安裝caffe2
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
      build-essential \
      cmake \
      git \
      libgoogle-glog-dev \
      libgtest-dev \
      libiomp-dev \
      libleveldb-dev \
      liblmdb-dev 
sudo apt-get install libopencv-dev
在安裝上面這個libopencv-dev時會提示沒有安裝一些依賴,如下圖所示,則需要自己一個個的安裝每個賴。
 


sudo apt-get install libopenmpi-dev \
      libsnappy-dev \
      libprotobuf-dev \
      openmpi-bin \
      openmpi-doc \
      protobuf-compiler \
      python3-dev \
      python3-pip 
sudo pip install \
      future \
      numpy \
      protobuf
sudo apt-get install -y --no-install-recommends libgflags-dev
3、開始下載caffe2原始碼,在home目錄下git
git clone --recursive https://github.com/pytorch/pytorch.git && cd pytorch
這個過程可能網速太慢,導致下載失敗,如果是third party裡的東西沒下載全,可以自己手動到上面這個連結上去下載,放到對應目錄下。
git submodule update --init
mkdir build && cd build
sudo cmake .. -DPYTHON_INCLUDE_DIR=/usr/include/python3.5  -DUSE_MPI=OFF.

Cmake時要加上後面的選項,否則後面會出錯:

如果不加-DUSE_MPI=OFF,在編譯到90%左右時報錯

undefined reference to symbol _ZN3MPI8Datatype

DSO missing from command line


-DPYTHON_INCLUDE_DIR=/usr/include/python3.5,在import caffe2.python.core時報錯

CRITICAL:root:Cannot load caffe2.python. Error: /home/arogozhn/projects/onnx/caffe2/build/caffe2/python/caffe2_pybind11_state.so: undefined symbol: _Py_ZeroStruct

這是cmake用python2.7編譯去了

確保上面python3.5徑是你的路徑下面是cmake的輸出,核對一下python版本是否是python3.5:

 



sudo make install
4、配置下環境變數
export PYTHONPATH=$PYTHONPATH:/home/nvidia/pytorch/build

確保上面的路徑是你的build目錄

不配置這個環境變數,在import caffe2時報錯no module named caffe2

5、測試是否安裝成功
cd ~ && python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"