windows编译tensorflow tensorflow单机多卡程序的框架 tensorflow的操作 tensorflow的变量初始化和scope 人体姿态检测 segmentation标注工具 tensorflow模型恢复与inference的模型简化 利用多线程读取数据加快网络训练 tensorflow使用LSTM pytorch examples 利用tensorboard调参 深度学习中的loss函数汇总 纯C++代码实现的faster rcnn tensorflow使用记录 windows下配置caffe_ssd use ubuntu caffe as libs use windows caffe like opencv windows caffe implement caffe model convert to keras model flappyBird DQN Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Neural Networks Fast-style-transfer tensorflow安装 tensorflow DQN Fully Convolutional Models for Semantic Segmentation Transposed Convolution, Fractionally Strided Convolution or Deconvolution 基于tensorflow的分布式部署 用python实现mlp bp算法 用tensorflow和tflearn搭建经典网络结构 Data Augmentation Tensorflow examples Training Faster RCNN with Online Hard Example Mining 使用Tensorflow做Prisma图像风格迁移 RNN(循环神经网络)推导 深度学习中的稀疏编码思想 利用caffe与lmdb读写图像数据 分析voc2007检测数据 用python写caffe网络配置 ssd开发 将KITTI的数据格式转换为VOC Pascal的xml格式 Faster RCNN 源码分析 在Caffe中建立Python layer 在Caffe中建立C++ layer 为什么CNN反向传播计算梯度时需要将权重旋转180度 Caffe使用教程(下) Caffe使用教程(上) CNN反向传播 Softmax回归 Caffe Ubuntu下环境配置

Caffe Ubuntu下环境配置

2016年05月09日

Caffe 安装配置步骤:

1,安装开发所需的依赖包

sudo apt-get install build-essential  # basic requirement
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler #required by caffe

2,安装CUDA 7.0

离线.deb安装,官网下载deb文件,切换到下载的deb所在目录,执行下边的命令

sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
sudo apt-get update 
sudo apt-get install cuda

然后重启电脑:

sudo reboot

3,安装cuDNN

下载cudnn-7.0-linux-x64-v3.0-rc.tgz

tar -zxvf cudnn-7.0-linux-x64-v3.0-rc.tgz
cd cudnn-7.0-linux-x64-v3.0-rc  (cuda目录)
sudo cp lib* /usr/local/cuda/lib64/  (切换到lib64目录)
sudo cp cudnn.h /usr/local/cuda/include/  (切换到include目录)

更新软连接

cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.7.0
sudo ln -s libcudnn.so.7.0.58 libcudnn.so.7.0
sudo ln -s libcudnn.so.7.0 libcudnn.so

4,设置环境变量

在/etc/profile中添加CUDA环境变量

sudo gedit /etc/profile

在文件后面加入PATH=/usr/local/cuda/bin:$PATH export PATH 保存后, 执行下列命令, 使环境变量立即生效

source /etc/profile

同时需要添加lib库路径: 在 /etc/ld.so.conf.d/加入文件 cuda.conf, 过程如下

vi /etc/ld.so.conf.d/cuda.conf

写入/usr/local/cuda/lib64打开编辑器,按i进入插入模式写入/usr/local/cuda/lib64然后:wq保存,执行下列命令使之立刻生效

sudo ldconfig

5,安装CUDA SAMPLE

进入/usr/local/cuda/samples, 执行下列命令来build samples

sudo make all –j8

整个过程大概10分钟左右, 全部编译完成后, 进入 samples/bin/x86_64/linux/release, 运行deviceQuery

./deviceQuery

如果出现显卡信息, 则驱动及显卡安装成功

6,安装Intel MKL 或Atlas

安装命令

sudo apt-get install libatlas-base-dev

7,安装OpenCV

  • 下载安装脚本
  • 进入目录 Install-OpenCV/Ubuntu/2.4
  • 执行脚本
sh sudo ./opencv2_4_10.sh

8,安装Caffe所需要的Python环境

网上介绍用现有的anaconda,我反正不建议,因为路径设置麻烦,很容易出错,而且自己安装很简单也挺快的。 首先需要安装pip

sudo apt-get install python-pip

再下载caffe,我把caffe放在用户目录下,安装git

sudo apt-get install git

cd回到home目录

git clone https://github.com/BVLC/caffe.git (注意版本,可能获得版本存在问题,可以直接去caffe社区下载最新版本)

再转到caffe的python目录,安装scipy

cd caffe/python
sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

最后安装requirement里面的包,需要root权限

sudo su
for req in $(cat requirements.txt); do pip install $req; done

如果提示报错,一般是缺少必须的包引起的,直接根据提示 pip install 就行了。 安装完后退出root权限

exit 

9,编译Caffe

终于来到这里了

进入caffe-master目录,复制一份Makefile.config.examples

cp Makefile.config.example Makefile.config

修改其中的一些路径,保存退出

编译

make all -j4
make test
make runtest

10,编译Python wrapper

make  pycaffe

11,安装 matlab

降级安装gcc4.7 g++4.7 因为matlab编译只支持到4.7

sudo apt-get install –y gcc-4.7   sudo apt-get install –y g++-4.7
cd /usr/bin
sudo rm gcc   sudo ln –s gcc-4.7 gcc
sudo rm g++   sudo ln –s g++-4.7 g++
gcc –version 查看版本号

编译Matlab wrapper

make matcaffe 

12, 切换cuda版本

在/usr/local里有cuda的版本信息以及一个cuda的软连接,在需要切换不同cuda版本时候可以简单地更改软连接指向

sudo rm /usr/local/cuda 
sudo ln -s /usr/local/cuda-8.0 /usr/local/cuda

13, 遇到的问题

“fatal error: hdf5.h: 没有那个文件或目录”解决方法

在Makefile.config文件的第85行,添加/usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码。

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

在Makefile文件的第173行,把 hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代码改为第二行代码。

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

或者

Cannot find -lhdf5_hl and -lhdf5 :

CXX src/caffe/util/hdf5.cpp
AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so.1.0.0-rc3
/usr/bin/ld: cannot find -lhdf5_hl
/usr/bin/ld: cannot find -lhdf5
collect2: error: ld returned 1 exit status
Makefile:563: recipe for target '.build_release/lib/libcaffe.so.1.0.0-rc3' failed
make: *** [.build_release/lib/libcaffe.so.1.0.0-rc3] Error 1

-- +INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
-- +LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

++ +INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
++ +LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/

cd /usr/lib/x86_64-linux-gnu
sudo ln -s libhdf5_serial.so.8.0.2 libhdf5.so
sudo ln -s libhdf5_serial_hl.so.8.0.2 libhdf5_hl.so

看我写的辛苦求打赏啊!!!有学术讨论和指点请加微信manutdzou,注明

20


blog comments powered by Disqus