分步说明:
概述:
Caffe 有几个依赖项:
- GPU 模式需要 CUDA 。
- 建议使用库版本 7+ 和最新的驱动程序版本,但 6.* 也可以
- 5.5 和 5.0 是兼容的,但被认为是遗留的
- 通过 ATLAS、MKL 或 OpenBLAS 的BLAS 。
- 提升>= 1.55
protobuf
, glog
, gflags
,hdf5
可选依赖项:
- OpenCV >= 2.4 包括 3.0
- IO 库:
lmdb
,leveldb
(注意:leveldb 需要snappy
)
- 用于 GPU 加速的 cuDNN (v6)
Pycaffe 和 Matcaffe 接口有其天然的需求。
- 对于 Python Caffe:
Python 2.7
或Python 3.3+
, numpy (>= 1.7)
, boost-providedboost.python
- 对于 MATLAB Caffe:带有
mex
编译器的 MATLAB。
cuDNN Caffe:为了实现最快的操作,Caffe 通过
NVIDIA cuDNN的嵌入式集成加速。要加速您的 Caffe 模型,请安装 cuDNN,然后在安装 Caffe 时取消注释
USE_CUDNN := 1
标志。
Makefile.config
加速是自动的。当前版本为cuDNN v6;较旧的 Caffe 支持较旧的版本。
CPU-only Caffe:对于冷酿的 CPU-only Caffe,取消注释
CPU_ONLY := 1
以
Makefile.config
配置和构建没有 CUDA 的 Caffe。这有助于云或集群部署。
CUDA 和 BLAS
Caffe 需要 CUDA
nvcc
编译器来编译其 GPU 代码和 CUDA 驱动程序以进行 GPU 操作。要安装 CUDA,请访问
NVIDIA CUDA 网站并按照那里的安装说明进行操作。分别安装库和最新的独立驱动程序;与库捆绑的驱动程序通常已过时。
警告!331.* CUDA 驱动程序系列有一个严重的性能问题:不要使用它。 为了获得最佳性能,可以使用
NVIDIA cuDNN加速 Caffe 。在 cuDNN 站点免费注册,安装它,然后按照这些安装说明继续。要使用 cuDNN 进行编译,请
USE_CUDNN := 1
在您的
Makefile.config
. Caffe 需要 BLAS 作为其矩阵和向量计算的后端。这个库有几个实现。这是你的选择:
- ATLAS:免费、开源,因此是 Caffe 的默认设置。
- Intel MKL:针对 Intel CPU 进行商业化和优化,具有免费许可证。
- 安装 MKL。
- 设置 MKL 环境(详细信息:Linux、OS X)。示例:source /opt/intel/mkl/bin/mklvars.sh intel64
- 置入
BLAS := mkl
_Makefile.config
- OpenBLAS:免费和开源;这个优化的并行 BLAS 可能需要更多的安装工作,尽管它可能会提供加速。
- 安装 OpenBLAS
- 置入
BLAS := open
_Makefile.config
Python 和/或 MATLAB Caffe(可选)
Python
主要需求是
numpy
and
boost.python
(由boost提供)。
pandas
也很有用,某些示例需要它。 您可以安装依赖项
for req in $(cat requirements.txt); do pip install $req; done
但我们建议首先安装Anaconda Python 发行版,它提供了大部分必需的包以及
hdf5
库依赖项。 安装完成后导入
caffe
Python模块,将模块目录添加到你
$PYTHONPATH
的by
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
之类。你不应该在
caffe/python/caffe
目录中导入模块!
Caffe 的 Python 接口适用于 Python 2.7。Python 3.3+ 应该在没有 protobuf 支持的情况下开箱即用。如需 protobuf 支持,请安装 protobuf 3.0 alpha (https://developers.google.com/protocol-buffers/)。早期的 Python 是你自己的冒险。
软件
安装 MATLAB,并确保它
mex
在您的
$PATH
.
Caffe 的 MATLAB 接口适用于 2015a、2014a/b、2013a/b 和 2012b 版本。
汇编
Caffe 可以使用 Make 或 CMake 编译。Make 得到官方支持,而 CMake 得到社区支持。
用 Make 编译
通过为您的设置复制和修改示例来配置构建
Makefile.config
。默认值应该有效,但如果使用 Anaconda Python,请取消注释相关行。
cp Makefile.config.example Makefile.config
# Adjust Makefile.config (for example, if using Anaconda Python, or if cuDNN is desired)
make all
make test
make runtest
- 对于 CPU 和 GPU 加速的 Caffe,不需要任何更改。
- 对于使用 NVIDIA 专有 cuDNN 软件的 cuDNN 加速,取消
USE_CUDNN := 1
注释Makefile.config
. cuDNN 有时但并不总是比 Caffe 的 GPU 加速更快。
- 对于 CPU-only Caffe,
CPU_ONLY := 1
在Makefile.config
.
要编译 Python 和 MATLAB 包装器,请分别执行
make pycaffe
和
make matcaffe
。请务必先设置您的 MATLAB 和 Python 路径
Makefile.config
!
Distribution:运行
make distribute
以创建一个
distribute
目录,其中包含分发到其他机器所需的所有 Caffe 标头、编译库、二进制文件等。
速度:为了更快地构建,通过执行并行编译,
make all -j8
其中 8 是用于编译的并行线程数(线程数的一个不错选择是机器中的内核数)。 现在您已经安装了 Caffe,请查看MNIST 教程http://caffe.berkeleyvision.org/gathered/examples/mnist.html 和参考 ImageNet 模型教程http://caffe.berkeleyvision.org/gathered/examples/imagenet.html。
构建
Makefile.config
由于 @Nerei、@akosiorek 和社区的其他成员,Caffe 提供了一个非官方的 CMake 构建,而不是手动编辑以配置构建。它需要 CMake 版本 >= 2.8.7。基本步骤如下:
mkdir build
cd build
cmake ..
make all
make install
make runtest
有关选项和详细信息,请参阅
PR #1667。
硬件
实验室测试硬件:Berkeley Vision 在 Titan Xs、K80s、GTX 980s、K40s、K20s、Titans 和 GTX 770s 上运行 Caffe,包括 ImageNet/ILSVRC 规模的模型。对于 CUDA 功能 >= 3.0 的设备,我们在内部没有遇到任何问题。到目前为止,所有报告的硬件问题都是由于 GPU 配置、过热等原因造成的。
CUDA 计算能力:由于硬件限制,计算能力 <= 2.0 的设备可能不得不减少 CUDA 线程数和批处理大小。谨慎酿造;我们建议计算能力 >= 3.0。 安装后,请根据我们的参考性能数据检查您的时间,以确保一切配置正确。 在caffe-users 组询问硬件问题。