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

被折叠的 条评论
为什么被折叠?



