ubuntu16.04编译caffe和测试
程序员文章站
2022-06-12 10:30:45
...
使用ubuntu16.04安装编译caffe框架踩了很多坑,装了很久,编译成功的是CPU版本,先将就用。
一、环境
- Linux: ubuntu-16.04-desktop-amd64
- OpenCV3.4.8,安装教程:OpenCV3.4.8安装(自己随便安装一个版本即可)
- cuda9.0(网上的安装教程很多,这个不难)
- cudnn(同上)
注:这些环境已经提前安装好
二、安装
1、必要的环境
sudo apt-get update #更新软件列表
sudo apt-get upgrade #更新软件
sudo apt-get install build-essential #安装build essentials
2、安装必要的库
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yaml
sudo easy_install pillow
3、下载caffe
cd ~
git clone https://github.com/BVLC/caffe.git
4、安装python相关的依赖库
cd caffe
cat python/requirements.txt | xargs -L 1 sudo pip install
5、增加符号链接
sudo ln -s /usr/include/python2.7/ /usr/local/include/python2.7
sudo ln -s /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ /usr/local/include/python2.7/numpy
6、修改Makefile.config配置文件
cp Makefile.config.example Makefile.config
用gedit打开Makefile.config(或者直接用vim在终端中打开修改也可以)
gedit Makefile.config
结果如图:(ctrl + F 直接搜索CPU_ONLY就可以)
把 /usr/lib/python2.7/dist-packages/numpy/core/include
改为: /usr/local/lib/python2.7/dist-packages/numpy/core/include
如图所示:
安装hdf5:
sudo apt-get install libhdf5-dev
添加hdf5库文件:
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/
如图所示:
7、编译caffe
在caffe目录下面执行:
make test
make pycaffe
make all
理论上应该是就可以编译成功,但是到这个步骤我遇到几个问题,重新编译好几次,每次的错误都不太一样,下面的解决方法解决了所有的报错。
- 问题
LD .build_release/src/caffe/test/test_db.o
.build_release/lib/libcaffe.so:对‘cv::imread(cv::String const&, int)’未定义的引用
.build_release/lib/libcaffe.so:对‘cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)’未定义的引用
.build_release/lib/libcaffe.so:对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用
collect2: error: ld returned 1 exit status
Makefile:628: recipe for target '.build_release/test/test_db.testbin' failed
make: *** [.build_release/test/test_db.testbin] Error 1
这个问题的出现应该是opencv类的问题,因为我使用的是opencv3,所以出现这种报错。
解决:
- 在Makefile文件中将
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m
改为:
LIBRARIES += glog gflags protobuf leveldb snappy \
lmdb boost_system boost_filesystem hdf5_hl hdf5 m \
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs opencv_videoio
- 将Makefile.config文件中的
# OPENCV_VERSION := 3
取消注释,变为:
OPENCV_VERSION := 3
- 执行:
make clean #清除编译信息
再次执行:
make test
make all
make pycaffe
就可以编译成功!
8、使用mnist测试
- 依次执行:
cd ~/caffe
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
- 编辑examples/mnist文件夹下的lenet_solver.prototxt文件,将solver_mode模式从GPU改为CPU。
- 训练模型
./examples/mnist/train_lenet.sh
训练结果:
注:每个人在安装的时候都可能遇到不一样的问题,需要耐心慢慢解决
参考链接:
- https://blog.csdn.net/weixin_37850264/article/details/79065695
- https://blog.csdn.net/w5688414/article/details/76695413?utm_source=blogxgwz1
- http://melonteam.com/posts/quan_juan_ji_shen_jing_wang_luo_fcn_xue_xi_bi_ji/#%E5%9B%9B%E4%BD%BF%E7%94%A8caffe%E8%BF%9B%E8%A1%8Cfcn%E7%9A%84%E8%AE%AD%E7%BB%83
- https://www.cnblogs.com/houjun/p/9982903.html
上一篇: iPhone 9真的只卖3000块?我觉得还是不要想太美
下一篇: Gremlin:图遍历语言
推荐阅读
-
ubuntu16.04编译安装mysql-boost-5.7.21并编译成php扩展测试与使用
-
M1处理器Mac编译代码测试:速度和8万元的Intel电脑一样快
-
ubuntu16.04编译caffe和测试
-
支持鱼眼相机和IMU的开源ORB_SLAM3最详细的编译测试教程来了
-
ORB_SLAM2安装编译测试ubuntu16.04
-
caffe学习:cifar-10数据集训练及测试(Ubuntu16.04)
-
caffe 训练和测试自己的图片
-
mini-caffe编译,用BLVC caffe编译的mnist模型进行测试
-
sysbench-0.4.12编译安装和CPU测试例子分享_MySQL
-
sysbench-0.4.12编译安装和CPU测试例子分享_MySQL