- ubuntu16.04下安装caffe2
- 安装需求包
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential \
cmake \
git \
libgoogle-glog-dev \
libprotobuf-dev \
protobuf-compiler \
python-dev \
python-pip
sudo pip install numpy protobuf
- 安装cuda(支持8.0)和cudnn(支持V6)工具--配置过caffe的可以忽略这步
1.安装cuda8.0
sudo apt-get update && sudo apt-get install wget -y --no-install-recommends
wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb"
sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
2.安装cudnn-v5.1(这里是V5.1版本的cudnn,已经支持V6版本的cudnn,可以去Nvidia网站上下载)
CUDNN_URL="http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz"
wget ${CUDNN_URL}
sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig
- 安装可用包
sudo apt-get install -y --no-install-recommends libgflags-dev
sudo apt-get install -y --no-install-recommends \
libgtest-dev \
libiomp-dev \
libleveldb-dev \
liblmdb-dev \
libopencv-dev \
libopenmpi-dev \
libsnappy-dev \
openmpi-bin \
openmpi-doc \
python-pydot
sudo pip install \
flask \
graphviz \
hypothesis \
jupyter \
matplotlib \
pydot python-nvd3 \
pyyaml \
requests \
scikit-image \
scipy \
setuptools \
tornado
- clone caffe2工具包
git clone --recursive https://github.com/caffe2/caffe2.git
cd caffe2
make
cd build
sudo make install
tips:安装的时候一定要安装建议来装,暂时不要调用多线程来安装,否则会出现失败的情况。
- 测试caffe2工具是否安装成功(成功会出现Success)
zhangbz@zhangbz:~/work/caffe2/build$ python -c 'from caffe2.python import core'
zhangbz@zhangbz:~/work/caffe2/build$ python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
Success
- 测试gpu是否工作(出现OK)
zhangbz@zhangbz:~/work/caffe2/build$ python -m caffe2.python.operator_test.relu_op_test
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/zhangbz/work/caffe2/build/caffe2/python/operator_test/relu_op_test.py", line 7, in <module>
from hypothesis import given
ImportError: No module named hypothesis ##缺少hypothesis模块
tips:安装hypothesis模块
zhangbz@zhangbz:~/work/caffe2/build$ pip install hypothesis
再次测试gpu是否工作:
zhangbz@zhangbz:~/work/caffe2/build$ python -m caffe2.python.operator_test.relu_op_test
Trying example: test_relu(self=<__main__.TestRelu testMethod=test_relu>,
X=array([[-0.95520395, -1. , -0.14771317],[-0.56449473, -0.9356454 , 0.76431829],[-0.32907826, -0.27779716, -0.66857189][-0.37795779, -0.57947767, -0.03350436]], dtype=float32), gc=, dc=[, device_type: 1], engine=u'')
Trying example: test_relu(self=<__main__.TestRelu testMethod=test_relu>, X=array([ 0. , 0.83450586, 0.02696872, 0. ], dtype=float32), gc=device_type: 1, dc=[, device_type: 1], engine=u'CUDNN')
Trying example: test_relu(self=<__main__.TestRelu testMethod=test_relu>, X=array([[[ 0. , 0.0290993 ],[ 0.02696681, 0.6186235 ],[-0.27140155, 0.65315956],[-0.39703232, 0.17461373]]], dtype=float32), gc=, dc=[, device_type: 1], engine=u'')
Trying example: test_relu(self=<__main__.TestRelu testMethod=test_relu>, X=array([[ 0. , -0.35016027]], dtype=float32), gc=device_type: 1, dc=[, device_type: 1], engine=u'CUDNN')
Trying example: test_relu(self=<__main__.TestRelu testMethod=test_relu>, X=array([ 0., 0., -0.], dtype=float32), gc=, dc=[, device_type: 1], engine=u'')
Trying example: test_relu(self=<__main__.TestRelu testMethod=test_relu>, X=array([ 0.], dtype=float32), gc=, dc=[, device_type: 1], engine=u'')
Trying example: test_relu(self=<__main__.TestRelu testMethod=test_relu>, X=array([ 0., 0., 0.], dtype=float32), gc=, dc=[, device_type: 1], engine=u'')
Trying example: test_relu(self=<__main__.TestRelu testMethod=test_relu>, X=array([ 0.], dtype=float32), gc=, dc=[, device_type: 1], engine=u'')
Trying example: test_relu(self=<__main__.TestRelu testMethod=test_relu>, X=array([-0.83774924], dtype=float32), gc=device_type: 1, dc=[, device_type: 1], engine=u'')
Trying example: test_relu(self=<__main__.TestRelu testMethod=test_relu>, X=array([-0. , 0.78971076, 0. ], dtype=float32), gc=, dc=[, device_type: 1], engine=u'CUDNN')
.
----------------------------------------------------------------------
Ran 1 test in 13.717s
OK