深度学习环境框架搭建debug_Ubuntu下Caffe快速配置及debug

首先,我们可以参照官方文档,官方文档是最直接最权威的:

Caffe官方配置文档

接下来我们介绍具体步骤:

前置条件

  1. Nvidia显卡驱动安装。
  2. Cuda和CuDnn设置。

一些依赖项

这些依赖项安装可以直接从软件源获取,当然也可以自己源码安装。

下面是相应的命令行代码:

# protobuf,snappy,leveldb,opencv,hdf5,boost ,python-opencv,glog ,gflag,lmdb
  sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
  sudo apt-get install --no-install-recommends libboost-all-dev
  sudo apt-get install python-dev python-opencv
  sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

关于blas可以选择atlas,openblas和MKL。

  sudo apt-get install libatlas-base-dev
  # openblas也很方便
  sudo apt-get install libopenblas-dev

安装Caffe

下载BVLC的Caffe:

git clone --recursive https://github.com/BVLC/caffe

编译Caffe

1.Make方式

Make方式为官方的编译方式,但是在后续caffe的使用时会稍显麻烦,这里要注意根据安装的库以及自己是否使用gpu、cudnn以及bals的选择等作出修改。

  cp Makefile.config.example Makefile.config
  # For CPU & GPU accelerated Caffe, no changes are needed.
  #For cuDNN acceleration using NVIDIA’s proprietary cuDNN software, uncomment the USE_CUDNN := 1 switch in #Makefile.config. cuDNN is sometimes but not always faster than Caffe’s GPU acceleration.
  #For CPU-only Caffe, uncomment CPU_ONLY := 1 in Makefile.config.
  # Adjust Makefile.config (for example, if using Anaconda Python, or if cuDNN is desired)
  make all -j8
  make test
  make runtest

2.Cmake方式

Cmake方式针对自己使用Caffe以及从软件源安装Caffe的用户来说比较方便快捷。

mkdir build
cd build
cmake ..
make all
make install
make runtest

注意:是在Caffe目录下进行build的创建。

完成最后的make runtest 之后,显示如下:

在这里插入图片描述

在用Caffe进行编译工程项目时可能会遇到下面的bug:

fatal error: caffe/proto/caffe.pb.h

解决办法如下:

protoc src/caffe/proto/caffe.proto --cpp_out=.
sudo mkdir include/caffe/proto
sudo mv src/caffe/proto/caffe.pb.h include/caffe/proto

由于使用Caffe不仅仅是停留在训练,可能很多都要具体的测试实际的项目,因此相比于Make方式,Cmake的优势就大大体现出来了。

编译自己的项目,仅仅需要写一个简单的CmakeLists.txt文件,并且文件内的内容可以保证百分之九十的不变,这使得验证算法和项目变得相当方便。

代码如下:

cmake_minimum_required(VERSION 2.9)
  project(big_model)  // 根据自己工程名字修改

  #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  set(CMAKE_CXX_STANDARD 11)

  find_package(OpenCV)

  find_package(Caffe REQUIRED)
  #message(FATAL_ERROR ${Caffe_INCLUDE_DIRS})
  include_directories(${Caffe_INCLUDE_DIRS})

  set(SOURCE_FILES main.cpp model.cpp model.h) // 根据自己实际源码修改
  add_executable(big_model ${SOURCE_FILES})

  target_link_libraries(big_model ${OpenCV_LIBS} )
  target_link_libraries(big_model ${Caffe_LIBRARIES})
发布了94 篇原创文章 · 获赞 37 · 访问量 3432

猜你喜欢

转载自blog.csdn.net/Rocky6688/article/details/103683686