
1. 环境准备与依赖项安装在Ubuntu 16.04上搭建Caffe深度学习框架需要先解决一系列依赖关系。这个环节往往是最容易出问题的地方特别是当需要同时支持Matlab接口和GPU加速时。1.1 系统级依赖安装首先更新软件源并安装基础编译工具sudo apt-get update sudo apt-get install -y build-essential cmake git pkg-config接下来安装Caffe的核心依赖项sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev \ libopencv-dev libhdf5-serial-dev protobuf-compiler sudo apt-get install -y --no-install-recommends libboost-all-dev注意--no-install-recommends参数可以避免安装不必要的推荐包保持系统简洁。但在某些情况下可能需要这些推荐包如果后续编译出错可以考虑去掉这个参数重新安装。1.2 GPU相关驱动安装如果需要使用GPU加速需要先安装NVIDIA驱动和CUDA工具包安装专有NVIDIA驱动sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update sudo apt-get install nvidia-384 nvidia-modprobe安装CUDA 8.0 从NVIDIA官网下载对应版本的CUDA Toolkit选择runfile安装方式chmod x cuda_8.0.61_375.26_linux.run sudo ./cuda_8.0.61_375.26_linux.run安装时注意不要安装自带的驱动其他选项保持默认。配置环境变量echo export PATH/usr/local/cuda-8.0/bin:$PATH ~/.bashrc echo export LD_LIBRARY_PATH/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH ~/.bashrc source ~/.bashrc1.3 cuDNN安装cuDNN是NVIDIA提供的深度学习加速库需要单独安装从NVIDIA开发者网站下载cuDNN v6.0 for CUDA 8.0解压并复制文件tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ sudo chmod ar /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*2. OpenCV 3.1编译与安装OpenCV是Caffe的重要依赖但Ubuntu 16.04默认仓库中的版本较旧我们需要手动编译3.1版本。2.1 源码获取与准备wget https://github.com/opencv/opencv/archive/3.1.0.zip unzip 3.1.0.zip cd opencv-3.1.0 mkdir build cd build2.2 编译配置cmake -D CMAKE_BUILD_TYPERelease \ -D CMAKE_INSTALL_PREFIX/usr/local \ -D WITH_CUDAON \ -D CUDA_ARCH_BIN3.0 3.5 5.0 6.0 \ -D CUDA_ARCH_PTX \ -D WITH_CUBLASON \ -D WITH_LIBV4LON \ -D BUILD_TESTSOFF \ -D BUILD_PERF_TESTSOFF ..2.3 解决GraphCut兼容问题在编译过程中可能会遇到CUDA 8.0不支持OpenCV的GraphCut算法的问题。解决方法修改opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp文件将#include precomp.hpp #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)改为#include precomp.hpp #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION 8000)2.4 编译与安装make -j$(nproc) sudo make install sudo ldconfig3. MATLAB 2017a安装与配置3.1 安装准备下载MATLAB 2017a Linux版本ISO文件挂载ISO镜像sudo mkdir /media/matlab sudo mount -o loop R2017a_glnxa64.iso /media/matlab3.2 执行安装cd /media/matlab sudo ./install在安装界面中选择使用文件安装密钥方式跳过网络配置选择安装路径为/usr/local/MATLAB/R2017a。3.3 激活与配置安装完成后需要激活MATLAB。将破解文件中的license_standalone.lic复制到MATLAB的license目录并将libmwservices.so复制到MATLAB的bin目录覆盖原文件。添加MATLAB到系统路径echo export PATH/usr/local/MATLAB/R2017a/bin:$PATH ~/.bashrc source ~/.bashrc4. Caffe编译与配置4.1 获取源码与准备git clone https://github.com/BVLC/caffe.git cd caffe cp Makefile.config.example Makefile.config4.2 配置文件修改编辑Makefile.config关键配置如下USE_CUDNN : 1 OPENCV_VERSION : 3 CUDA_DIR : /usr/local/cuda BLAS : atlas MATLAB_DIR : /usr/local/MATLAB/R2017a PYTHON_INCLUDE : /usr/include/python2.7 \ /usr/lib/python2.7/dist-packages/numpy/core/include PYTHON_LIB : /usr/lib WITH_PYTHON_LAYER : 1特别注意需要添加以下内容解决HDF5路径问题INCLUDE_DIRS : $(PYTHON_INCLUDE) /usr/local/include /usr/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include LIBRARY_DIRS : $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial4.3 解决常见编译错误libcudnn找不到 确保cuDNN文件已正确复制到CUDA目录并创建符号链接sudo ln -s /usr/local/cuda/lib64/libcudnn.so.6 /usr/local/cuda/lib64/libcudnn.soprotobuf问题 对于Anaconda用户conda install protobuflibpng问题 在Makefile.config中添加LINKFLAGS : -Wl,-rpath,$(HOME)/anaconda2/lib4.4 编译与测试make all -j$(nproc) make test -j$(nproc) make runtest -j$(nproc) make pycaffe -j$(nproc) make matcaffe -j$(nproc)5. 验证与使用5.1 Python接口验证import sys caffe_root /path/to/caffe/ sys.path.insert(0, caffe_root python) import caffe5.2 MATLAB接口验证在MATLAB命令行中addpath(/path/to/caffe/matlab); caffe.set_mode_cpu(); % 或 caffe.set_mode_gpu();5.3 MNIST测试./data/mnist/get_mnist.sh ./examples/mnist/create_mnist.sh ./examples/mnist/train_lenet.sh6. 常见问题与解决方案MATLAB编译问题 如果遇到gcc版本不兼容在Makefile中添加CXXFLAGS -stdc11Python导入错误 确保protobuf已安装pip install protobufcuDNN版本问题 如果使用不同版本的cuDNN需要修改Makefile.config中的USE_CUDNN设置并确保库路径正确。OpenCV冲突 如果系统中有多个OpenCV版本可以通过修改LD_LIBRARY_PATH指定使用哪个版本export LD_LIBRARY_PATH/usr/local/lib:$LD_LIBRARY_PATH这套环境搭建过程虽然复杂但通过分步实施和问题排查最终可以成功搭建起支持GPU加速和MATLAB接口的Caffe深度学习框架。在实际操作中建议做好每一步的备份特别是配置文件这样在出现问题时可以快速回退到上一步的工作状态。