ubuntu安装caffe、matlab 和 opencv

本文档详细记录了在Ubuntu 16.04上安装Caffe(CPU-only)、Matlab以及OpenCV的过程,包括遇到的坑和解决方法。安装Matlab时需注意版本兼容性和权限问题,OpenCV选择源码安装3.4.1版本,Caffe安装涉及依赖、Makefile配置及解决gcc/g++版本冲突问题。通过修改系统库文件路径,成功编译Matlab接口并能在Matlab中运行Caffe代码。

写在前面

最近要跑一套caffe+matlab的代码,然后动手在ubuntu16.04下装了一下。坑比较多,过程比较坎坷。感觉caffe+matlab还是很不好用的组合。
我只装了cpu-only。下文主要记录的是我遇到的问题,每个人的情况不一样,不一定适用。

安装matlab

matlab是有官方linux版的,当然要许可证。安装包和crack在网上也有,找仔细一点就好了。caffe官网有讲只支持特定的版本,事实上我装了支持版本(2014a)也遇到了报错,为了避免多余的麻烦还是按官网来。
我拿到手的是两个压缩包,解压其中一个就能得到iso文件。然后:

  • 用命令行挂载
    sudo mount –t auto –o loop ××.iso /target/path/that/exist
    双击也能挂载,但进去的install文件显示无法确定权限,chmod没用,我也没找到其他运行方法。
  • 运行安装程序
    sudo ./install
  • 会弹出图形化安装界面,后面一路常规操作,填写序列号请看自己包里的readme或者其他帮助文档,替换文件同理。

安装openv

官网下source,我选了3.4.1。进入根目录:

mkdir build # 创建编译的文件目录
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make #编译
sudo make install #安装
pkg-config --modversion opencv  #看版本,检查是否安装成功

当然也可以从一开始就用apt-get的安装方法,好像版本比较老。好处是很容易成功。

安装caffe

  • 先装几个依赖,根据官网参考版本
  • github上下载master分支
  • 解压后
 cd caffe-master
 cp Makefile.config.example Makefile.config
 vim Makefile.config

这里讲一下.config的几个配置点:

# CPU_ONLY := 1  ->  CPU_ONLY := 1
# OPENCV_VERSION:=3  ->  OPENCV_VERSION:=3(如果装的是opencv3需要做这一步)
# MATLAB_DIR=/usr/local/  ->  /usr/local/MATLAB/R2014a(这是我的matlab安装路径,类推)
INCLUDE_DIRS := \$(PYTHON_INCLUDE) /usr/local/include -> 
INCLUDE_DIRS := \$(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := \$(PYTHON_LIB) /usr/local/lib /usr/lib ->
LIBRARY_DIRS := \$(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

另外修改MakeFile:

CXXFLAGS += -pthread -fPIC \$(COMMON_FLAGS) \$(WARNINGS)
CXXFLAGS += -std=c++11(这行是自己加的)
NVCCFLAGS += -ccbin=\$(CXX) -Xcompiler -fPIC \$COMMON_FLAGS)

这句话不加的话,make matcaffe不能过。

  • 编译caffe
 make all
 make test
 make runtest

注意这里用的gcc和g++的版本有要求。我一开始为了支持matlab的版本,用了4.7.4遇到报错,换回5就好了。

  • 编译matlab接口
 make matcaffe
 make mattest

我用的2014a支持的版本只到4.7,但是用5编译也能通过。这里可能会遇到报错:

/usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `CXXABI_1.3.8' not found 

这是因为matlab自带的libstdc++.so.6不包含那个版本,但是我们系统可能有带,用命令查看:

strings /usr/lib/x86_64-linux-gnu libstdc++.so.6 | grep CXXABI_1.3.8

如果有输出就表示系统的库文件可用。用下面的命令“注释”matlab自带的文件:

cd /usr/local/MATLAB/R2014a/sys/os/glnxa64/
mv libstdc++.so.6 libstdc++.so.6.bak

这样matlab会自己去找系统里的库文件。

  • 运行matlab
    最后用sudo matlab运行,在代码里配置一下caffe路径,就可以跑代码啦。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值