前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu14:cmake生成Makefile编译caffe过程(OpenBLAS/CPU only)

Ubuntu14:cmake生成Makefile编译caffe过程(OpenBLAS/CPU only)

作者头像
10km
发布2019-05-25 21:45:05
1.4K0
发布2019-05-25 21:45:05
举报
文章被收录于专栏:10km的专栏10km的专栏

版权声明:本文为博主原创文章,转载请注明源地址。 https://cloud.tencent.com/developer/article/1433547

之前在CentOS6.5下成功完成了caffe的编译(参见《CentOS6.5编译Caffe过程记录(系统存在多个编译器)》),最近将操作系统平台换成了ubuntu14,网上找到的介绍ubuntu下编译caffe的文章都是直接修改Makfile.config和Makefile来完成编译的,caffe本身提供了用于生成 Makefile的cmake脚本,所以我还是希望尝试用cmake生成的Makefile来完成编译。

caffe原本应该就是在ubuntu下开发的,所以我本以为ubuntu下编译会很顺利,实际操作,还是踩到一些坑。

以下记录cmake方式编译caffe的过程(与CentOS6.5下还是有些不同)

编译环境准备

#!/bin/bash
sudo apt-get install libprotobuf-dev libprotobuf-compiler libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev 
sudo apt-get install libboost-all-dev   // 安装boost库
#sudo apt-get install libatlas-base-dev  //BLAS如使用OpenBLAS,可不安装
sudo apt-get install libopenblas-dev    //BLAS如使用atlas,可不安装
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install python-numpy  // 安装numpy

编译caffe

#!/bin/bash
caffe_folder=caffe-master
if [ -d $caffe_folder ]
then 
    rm -fr $caffe_folder
fi
# 从 https://github.com/BVLC/caffe 下载Caffe源码 caffe-master.zip解压缩
unzip $caffe_folder.zip 
pushd $caffe_folder
# 执行cmake生成Makefile
mkdir build && cd build
#编译CPU版本,BLAS 使用OpenBLAS(速度更快些)
cmake -DCPU_ONLY=ON -DBLAS=Open -DHDF5_HL_INCLUDE_DIR=/usr/include/hdf5/serial ..
# 开始编译并安装到build/install下 
# -j24 指定24线程执行
make install -j 24
cd ..
popd

说明:

-DHDF5_HL_INCLUDE_DIR=/usr/include/hdf5/serial用于手工指定HDF5_HL_INCLUDE_DIR位置,否则会编译会报错:

./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: No such file or directory

cmake -DCPU_ONLY=ON -DBLAS=Open -DHDF5_HL_INCLUDE_DIR=/usr/include/hdf5/serial .. 输出

-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
--   thread
--   filesystem
--   chrono
--   date_time
--   atomic
-- Found GFlags: /usr/local/include  
-- Found gflags  (include: /usr/local/include, library: /usr/local/lib/libgflags.a)
-- Found Glog: /usr/local/include  
-- Found glog    (include: /usr/local/include, library: /usr/local/lib/libglog.a)
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so;-lpthread (found version "2.6.1") 
-- Found PROTOBUF Compiler: /usr/bin/protoc
-- HDF5: Using hdf5 compiler wrapper to determine C configuration
-- HDF5: Using hdf5 compiler wrapper to determine CXX configuration
-- Found HDF5: /usr/lib/x86_64-linux-gnu/libhdf5_cpp.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so (found version "1.8.16") found components:  HL 
-- Found LMDB: /usr/include  
-- Found lmdb    (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/liblmdb.so)
-- Found LevelDB: /usr/include  
-- Found LevelDB (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libleveldb.so)
-- Found Snappy: /usr/include  
-- Found Snappy  (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libsnappy.so)
-- -- CUDA is disabled. Building without it...
-- OpenCV found (/usr/share/OpenCV)
-- Found OpenBLAS libraries: /usr/lib/libopenblas.so
-- Found OpenBLAS include: /usr/include
-- Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.12", minimum required is "2.7") 
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found suitable version "2.7.12", minimum required is "2.7") 
-- Found NumPy: /usr/lib/python2.7/dist-packages/numpy/core/include (found suitable version "1.11.0", minimum required is "1.7.1") 
-- NumPy ver. 1.11.0 found (include: /usr/lib/python2.7/dist-packages/numpy/core/include)
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   python
-- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE) 
-- Could NOT find Git (missing:  GIT_EXECUTABLE) 
-- 
-- ******************* Caffe Configuration Summary *******************
-- General:
--   Version           :   1.0.0-rc3
--   Git               :   unknown
--   System            :   Linux
--   C++ compiler      :   /usr/bin/c++
--   Release CXX flags :   -O3 -DNDEBUG -fPIC -Wall -Wno-sign-compare -Wno-uninitialized
--   Debug CXX flags   :   -g -fPIC -Wall -Wno-sign-compare -Wno-uninitialized
--   Build type        :   Release
-- 
--   BUILD_SHARED_LIBS :   ON
--   BUILD_python      :   ON
--   BUILD_matlab      :   OFF
--   BUILD_docs        :   ON
--   CPU_ONLY          :   ON
--   USE_OPENCV        :   ON
--   USE_LEVELDB       :   ON
--   USE_LMDB          :   ON
--   ALLOW_LMDB_NOLOCK :   OFF
-- 
-- Dependencies:
--   BLAS              :   Yes (Open)
--   Boost             :   Yes (ver. 1.58)
--   glog              :   Yes
--   gflags            :   Yes
--   protobuf          :   Yes (ver. 2.6.1)
--   lmdb              :   Yes (ver. 0.9.17)
--   LevelDB           :   Yes (ver. 1.18)
--   Snappy            :   Yes (ver. 1.1.3)
--   OpenCV            :   Yes (ver. 2.4.9.1)
--   CUDA              :   No
-- 
-- Python:
--   Interpreter       :   /usr/bin/python2.7 (ver. 2.7.12)
--   Libraries         :   /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.12)
--   NumPy             :   /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.0)
-- 
-- Documentaion:
--   Doxygen           :   No
--   config_file       :   
-- 
-- Install:
--   Install path      :   /home/guyadong/caffe/caffe-master/build/install
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/guyadong/caffe/caffe-master/build

参考资料:

《ubuntu16.04+caffe(CPU only)&hdf5.h: No such file or directory》

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年11月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 编译环境准备
  • 编译caffe
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档