这篇博客主要讲述在Ubuntu14.04上安装Caffe的两种方法,一种是传统的安装方法,另一种是Caffe快速安装版,当你需要在多台机器上安装caffe的时候,这种方法会大大提高效率。
先说一下传统的安装方法。
如果显卡不支持CUDA,则跳过此步骤,使用CPU版的Caffe。
如果支持,则下载显卡驱动。下载地址:https://www.geforce.cn/drivers
按 ctrl+alt+F1 进入tty1模式, 登录tty1后输入如下命令
chmod +x NVIDIA-Linux-x86_64-384.98.run
./ NVIDIA-Linux-x86_64-384.98.run -no-x-check -no-nouveau-check -no-opengl-files
加入-no-x-check -no-nouveau-check -no-opengl-files参数后,会避免安装完驱动后系统进不去的问题。
注:
虽然CUDA可以自动安装驱动,但是使用CUDA安装驱动可能会出现一些问题,所以建议先安装驱动,然后安装CUDA。
如果显卡不支持CUDA,则跳过此步骤。
去官网下载CUDA安装包。官网下载地址:https://developer.nvidia.com/cuda-downloads
还是在tty1中,直接执行
chmod +x cuda_8.0.44_linux.run
sudo ./cuda_8.0.44_linux.run
由于之前已经安装过驱动了,安装过程中需要跳过安装驱动。
这里选择安装ATLAS(ATLAS,MKL或者OpenBLAS三者选一个安装)
sudo apt-get update
sudo apt-get install build-essential libprotobuf-dev libleveldb-dev liblmdb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler libgflags-dev libgoogle-glog-dev libatlas-base-dev
注意:这里没有安装OpenCV和Boost,你可以使用apt-get的方式很方便的完成安装。
sudo apt-get install libopencv-dev
sudo apt-get install libboost-dev
但是有的时候由于apt-get安装的版本太低,个人推荐这两项都独立安装
sudo apt-get install build-essential #安装各种开发工具,比如g++,libstdc++等
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
sudo apt-get install ffmpeg
首先下载opencv,并解压
cd opencv
mkdir Build # 注意区分不同编译版本
cd Build
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/home/qq/usr/local/OpenCV/ \
-D WITH_TBB=OFF \
-D WITH_CUDA=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_SHARED_LIBS=ON ..
make -j8
make install
注意:
1. 如果不指定安装目录,默认安装到/usr/local/中
2. 如果添加extra模块,在cmake语句中,添加如下参数:
-D OPENCV_EXTRA_MODULES_PATH=/home/qq/OpenCV/opencv/opencv_contrib-master/modules/ \
(OPENCV_EXTRA_MODULES_PATH的值就是contrib模块的路径)
下载caffe安装包,下载地址:https://github.com/BVLC/caffe
解压该压缩包,解压缩命令:
unzip caffe-master.zip
进入caffe根目录,首先复制一份Makefile.config:
cp Makefile.config.example Makefile.config
然后修改里面的内容,主要需要修改的参数包括:
Vim Makefile.config
根据实际情况修改参数:
CPU_ONLY :=1 是否只使用CPU模式。
USE_CUDNN := 1 是否使用CUDNN
BLAS:=atlas(mkl or open)
完成上述设置后,开始编译:
make all -j8
make test
make runtest
测试全部通过表示Caffe编译成功。
当你需要安装在多台机器上安装Caffe的时候,上面的方法效率并不高。
首先需要准备好自己独立编译好的caffe所有的依赖库,我上传了Ubuntu14.04下的caffe所有依赖库。点击下载
安装OpenCV依赖
sudo apt-get install build-essential #安装各种开发工具,比如g++,libstdc++等
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
sudo apt-get install ffmpeg
修改Makefile.config文件:
INCLUDE_DIRS和LIBRARY_DIRS,加入所有Caffe依赖(包括3rdpartDependency)
pathOfProtoc:=/home/qq/usr/local/Protobuf/bin/protoc
ifeq ("$(wildcard $(pathOfProtoc))","")
pathOfProtoc:=/usr/bin/protoc
endif
修改protoc的编译命令:
$(PROTO_BUILD_DIR)/%.pb.cc $(PROTO_BUILD_DIR)/%.pb.h : \
$(PROTO_SRC_DIR)/%.proto | $(PROTO_BUILD_DIR)
@ echo PROTOC $<
$(Q)$(pathOfProtoc) --proto_path=$(PROTO_SRC_DIR) --cpp_out=$(PROTO_BUILD_DIR) $<
$(PY_PROTO_BUILD_DIR)/%_pb2.py : $(PROTO_SRC_DIR)/%.proto \
$(PY_PROTO_INIT) | $(PY_PROTO_BUILD_DIR)
@ echo PROTOC \(python\) $<
$(Q)$(pathOfProtoc) --proto_path=$(PROTO_SRC_DIR) --python_out=$(PY_PROTO_BUILD_DIR) $<
7. 下面就可以编译caffe了:
make all -j8
make runtest
我将我自己使用该方法编译成功的Caffe工程上传了,有不清楚的朋友可以将示例工程下载下来。点击下载
当你需要在多台机器上安装Caffe的时候,这种方法能够大大提高效率,如果将多台机器上库路径设置相同,makefile文件只需修改一次,其他机器直接复制就可以用了,这样效率会更高。
2016-4-15 20:22:44
Last updated: 2017-11-19 13:29:18