人工智能/機器學習/深度學習交流QQ羣:811460433
程序員深度學習微信公衆號:
caffe2和pytorch是FaceBook的兩大開源深度學習框架,caffe2於2018年04月併入了pytorch:
所以效果要安裝擁有最新特性的caffe2,就直接安裝pytorch吧。
硬件配置:
軟件配置:
CUDA8.0+cudnn6.0
gcc 5.4.1 g++5.4.1
cmake 3.5.1
- 1
- 2
- 3
1.安裝依賴:
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 \
libopencv-dev \
libopenmpi-dev \
libsnappy-dev \
libprotobuf-dev \
openmpi-bin \
openmpi-doc \
protobuf-compiler \
python-dev \
python-pip
sudo pip install \
future \
numpy \
protobuf
# for Ubuntu 16.04
sudo apt-get install -y --no-install-recommends libgflags-dev
2.安裝CUDA+cuDNN
這裏特別注意,當前(2018年04月24日)版本的pytorch只支持使用CUDA8.0+cuDNN6.0編譯。我已經嘗試在CUDA9.0+CUDNN7.0下編譯,結果是編譯失敗。
3.編譯安裝
# Clone Caffe2's source code from our Github repository
git clone --recursive https://github.com/pytorch/pytorch.git && cd pytorch
git submodule update --init
# Create a directory to put Caffe2's build files in
mkdir build && cd build
# Configure Caffe2's build
# This looks for packages on your machine and figures out which functionality
# to include in the Caffe2 installation. The output of this command is very
# useful in debugging.
cmake ..
# Compile, link, and install Caffe2
sudo make install
請注意此處必須要將自摸塊也要一併clone下來,否則編譯期間會遇到各種各樣的問題。我已經將源碼打包上傳於百度雲,
鏈接:https://pan.baidu.com/s/1PEpLXJLfJKpde9HPaV_b1A 密碼:b0kn
4.驗證安裝
# To check if Caffe2 build was successful
python2 -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
# To check if Caffe2 GPU build was successful
# This must print a number > 0 in order to use Detectron
python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'
正常結果應該如下:
如果編譯安裝過程沒有什麼錯誤,但是驗證的時候出錯了,試一試添加環境變量:
export PYTHONPATH=/home/xzchuang/pytorch/build:$PYTHONPATH
5.特別說明
先前我的環境是 CUDA9.0+cuDNN7.0+tensorflow-gpu1.6,裝完以上環境之後發現在import tensorflow拋出錯誤:
ImportError:libcusolver.so.9.0
經實驗CUDA8.0+cudnn6.0不支持tensorflow-gpu1.5、1.6、1.7。我卸載掉原先的版本,之後安裝1.4版本就沒有拋異常了。
6.編譯中出現的問題:
6.1 mpi_test.cc.o: undefined reference to symbol '_ZN3MPI8Datatype4FreeEv
解決方法:
cmake .. -DUSE_MPI=OFF