Caffe安装笔记
2016-01-17 16:18
525 查看
本文记录了两种情况下的Caffe 安装,一是在已经装了Centos和cuda的机器上安装,二是从裸机开始。前者由于各个软件版本兼容问题出错较多,后者则相当顺利。
gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
cuda-5.5
执行cmake .. 出现错误:
Could NOT find Atlas (missing: Atlas_CBLAS_LIBRARY Atlas_BLAS_LIBRARY
Atlas_LAPACK_LIBRARY)
解决方案是修改变量BLAS的值,该变量在CMakeFiles.txt中有定义。
cmake -DBLAS=open ..
安装软件包(部分)的版本为:
python
参考官方安装指南
其中,
然后,
详见这里
安装opencv
下载opencv-2.4.9.zip,解压后执行
执行make 时报如下的错误:
查到png_set_longjmp_fn 是动态链接库libpng.so中的一个函数
找到被libopencv_highgui.so.2.4.9需要的libpng.so链接库的位置,并执行
发现没有函数字段
这样上述
(这里给出一个顺利安装的示例)
安装成功后,将opencv中的cv2.so拷贝到Python的安装目录下,以便可以在Python中导入,否则将出现
如果img是none的话则说明opencv安装有问题,可能是opencv中的libpng包有问题,读取.jpg得到none可能是libjpg有问题,还有一种说法为debug和release的包混合了(详见这里),反正都需要重新安装opencv,安装RELESE版本的设置变量CMAKE_BUILD_TYPE=RELEASE .
至此,opencv 基本安装成功(如果在Python )。在caffe-master目录下的Makefile.config中设置
安装CUDA
因为实验机器上已经安装了CUDA driver 6.0,nvcc 5.5,虽然不是caffe推荐的最佳配置,但是通过注释掉出错的行(不推荐)勉强编译通过。
在执行
解决方法是直接将
注:如果在编译过程中显示检测到的设备数量为0,且出现
用nsight打开源代码时出错,
java: cairo-misc.c:380:_cairo_operator_bounded_by_source: Assertion `NOT_REACHED’ failed.
原因是没有安装 Cairo Graphics,解决办法是打开时添加参数
nsight -vmargs -Dorg.eclipse.swt.internal.gtk.cairoGraphics=”false”
1.安装一般的依赖工具
2.安装cuda
2.1选择cuda版本
2.1执行安装命令
详见cuda官网
3.安装BLAS
4.安装Python (anaconda3)
下载Anaconda3-4.1.0-Linux-x86_64.sh,并执行即可
5.ubuntu其他的依赖
6.安装OPENCV
按照OPENCV官网步骤安装即可
7.编译caffe
7.1先下载caffe,之后修改Makefile.config文件,针对上面的配置的Makefile.config文件见这里
7.2编译安装命令(使用cmake)
到此可以去执行caffe example中的例子了。
此外,在python中使用caffe,需要向PYTHONPATH中添加“/path/to/caffe/python”路径。
注:
如果之后修改了Makefile.config文件,则需要重新编译,此时只需要在cmake前面加一条make clean即可。
我在上述过程中,修改了Makefile.config文件而没有进行make clean,导致:
在执行
在GPU模式下执行caffe example中的程序时,出现错误:
这些错误在进行
2.caffe官网:http://caffe.berkeleyvision.org/install_yum.html
安装1
系统环境
CentOS release 6.4 (Final)gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
cuda-5.5
必要项安装
按照官网步骤进行安装,安装中卡的时间比较长的一个问题:执行cmake .. 出现错误:
Could NOT find Atlas (missing: Atlas_CBLAS_LIBRARY Atlas_BLAS_LIBRARY
Atlas_LAPACK_LIBRARY)
解决方案是修改变量BLAS的值,该变量在CMakeFiles.txt中有定义。
cmake -DBLAS=open ..
安装软件包(部分)的版本为:
python
Python 2.7.11 :: Anaconda 2.4.1 (64-bit)
可选项安装项
opencv
为了使用caffe中的ImageData,则必须要设置Makefile.config中的USE_OPENCV=1,此时需要安装opencv.参考官方安装指南
其中,
yum install ffmpeg ffmpeg-devel报错
package not found解决方案为: 在 /etc/yum.repos.d 下新建源dag.repo,内容如下
[dag] name=Dag RPM Repository for Red Hat Enterprise Linux baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 enabled=1
然后,
yum install ffmpeg ffmpeg-devel
详见这里
安装opencv
下载opencv-2.4.9.zip,解压后执行
cd opencv-2.4.9 && mkdir build && cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D INSTALL_PYTHON_EXAMPLES=ON -DBUILD_EXAMPLES=ON -D WITH_V4L=ON .. make -j8 sudo make install
执行make 时报如下的错误:
../../lib/libopencv_highgui.so.2.4.9: undefined reference to `png_set_longjmp_fn' collect2: ld 返回 1 make[2]: *** [bin/opencv_perf_imgproc] 错误 1 make[1]: *** [modules/imgproc/CMakeFiles/opencv_perf_imgproc.dir/all] 错误 2 make: *** [all] 错误 2
查到png_set_longjmp_fn 是动态链接库libpng.so中的一个函数
ldd libopencv_highgui.so.2.4.9得到
... libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00007f9939b64000) libpng16.so.16 => /usr/lib64/libpng.so(0x00007f9939922000) libtiff.so.3 => /usr/lib64/libtiff.so.3 (0x00007f99396bd000) libjasper.so.1 => /usr/lib64/libjasper.so.1 (0x00007f9939464000) ...
找到被libopencv_highgui.so.2.4.9需要的libpng.so链接库的位置,并执行
readelf -s libpng.so #读取链接库的头文件
发现没有函数字段
png_set_longjmp_fn,所以做一个硬连接
ln ~/anaconda2/lib/libpng16.so.16 /usr/lib64/libpng.so
这样上述
undefined reference to png_set_longjmp_fn问题就不会出现。
(这里给出一个顺利安装的示例)
安装成功后,将opencv中的cv2.so拷贝到Python的安装目录下,以便可以在Python中导入,否则将出现
ImportError: No module named cv2
cp /usr/local/lib/python2.7/site-packages/cv2.so ~/anaconda2/lib/python2.7/site-packages
python >>> import cv2 >>> print cv2.__version__ >>>img=cv2.imread("0_Karen_160.png",0) >>> print img [[0 0 0 ..., 0 0 0] [0 0 0 ..., 0 0 0] [0 0 0 ..., 0 0 0] ..., [0 0 0 ..., 0 0 0] [0 0 0 ..., 0 0 0] [0 0 0 ..., 0 0 0]]
如果img是none的话则说明opencv安装有问题,可能是opencv中的libpng包有问题,读取.jpg得到none可能是libjpg有问题,还有一种说法为debug和release的包混合了(详见这里),反正都需要重新安装opencv,安装RELESE版本的设置变量CMAKE_BUILD_TYPE=RELEASE .
至此,opencv 基本安装成功(如果在Python )。在caffe-master目录下的Makefile.config中设置
USE_OPENCV := 1,并不用取消注释
#OPENCV_VERSION := 3,否则重新编译caffe到make all时ld将会找opencv 3的一个库
libopencv_imgcodecs.so,找不到时会报错如下
AR -o .build_release/lib/libcaffe.a LD -o .build_release/lib/libcaffe.so /usr/bin/ld: cannot find -lopencv_imgcodecs
安装CUDA
因为实验机器上已经安装了CUDA driver 6.0,nvcc 5.5,虽然不是caffe推荐的最佳配置,但是通过注释掉出错的行(不推荐)勉强编译通过。
在Makefile.config文件中 1.注释掉CPU_ONLY := 1 2.更改CUDA_DIR 在caffe-master下执行 make clean mkdir build && cd build cmake -DBLAS=open -DUSE_OPENCV=0 .. make VERBOSE=1 all -j4 make test -j4 make runtest -j4
在执行
make all时因为cuda版本低报出如下错误:
src/caffe/parallel.cpp:131: 错误:‘struct cudaDeviceProp’没有名为‘isMultiGpuBoard’的成员 src/caffe/parallel.cpp:131: 错误:‘struct cudaDeviceProp’没有名为‘isMultiGpuBoard’的成员 ...
解决方法是直接将
src/caffe/parallel.cpp文件中的相关行注释掉,之后可以顺利编译通过。
注:如果在编译过程中显示检测到的设备数量为0,且出现
Check failed: error == cudaSuccess (3 vs. 0) initialization error之类的错误则很可能是cuda sdk 和cuda driver 的版本不匹配的问题。
重新编译caffe
更改Makefile.config文件之后需要重新编译caffecd caffe-master rm -rf build cd build cmake -DBLAS=open .. make all -j4 make install -j4 make test -j4 make runtest -j4
源码学习
使用nsight(CUDA Toolkit的一部分)学习caffe源代码用nsight打开源代码时出错,
java: cairo-misc.c:380:_cairo_operator_bounded_by_source: Assertion `NOT_REACHED’ failed.
原因是没有安装 Cairo Graphics,解决办法是打开时添加参数
nsight -vmargs -Dorg.eclipse.swt.internal.gtk.cairoGraphics=”false”
安装2
先在裸机上装了ubuntu-mate-14.04.2-LTS-desktop-amd64,之后apt-get安装了必要的工具,然后开始安装caffe,出奇地顺利。1.安装一般的依赖工具
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
2.安装cuda
2.1选择cuda版本
2.1执行安装命令
sudo dpkg -i cuda-repo-ubuntu1404_7.5-18_amd64.deb sudo apt-get update sudo apt-get install cuda
详见cuda官网
3.安装BLAS
sudo apt-get install libatlas-base-dev
4.安装Python (anaconda3)
下载Anaconda3-4.1.0-Linux-x86_64.sh,并执行即可
5.ubuntu其他的依赖
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
6.安装OPENCV
按照OPENCV官网步骤安装即可
7.编译caffe
7.1先下载caffe,之后修改Makefile.config文件,针对上面的配置的Makefile.config文件见这里
7.2编译安装命令(使用cmake)
cd caffe mkdir build && cd build cmake .. make all -j8 #编译Python接口 make pycaffe make install -j8 make test -j8 make runtest -j8 make pytest
到此可以去执行caffe example中的例子了。
此外,在python中使用caffe,需要向PYTHONPATH中添加“/path/to/caffe/python”路径。
注:
如果之后修改了Makefile.config文件,则需要重新编译,此时只需要在cmake前面加一条make clean即可。
我在上述过程中,修改了Makefile.config文件而没有进行make clean,导致:
在执行
make runtest -j8时出现错误:
Check failed: error == cudaSuccess (77 vs. 0) an illegal memory access was encountered *** Check failure stack trace: ***
在GPU模式下执行caffe example中的程序时,出现错误:
status == CUBLAS_STATUS_SUCCESS (14 vs. 0) CUBLAS_STATUS_INTERNAL_ERROR.
这些错误在进行
make clean,然后重新编译就消失了。
参考
1.http://blog.csdn.net/xuanyuansen/article/details/467865972.caffe官网:http://caffe.berkeleyvision.org/install_yum.html
相关文章推荐
- 从源码安装Mysql/Percona 5.5
- 在 AppImage、Flathub 和 Snapcraft 平台上搜索 Linux 应用
- Varnish Install And Configure
- 解决vc中unable to connect to the MKS:Internal error问题
- 杰奇一些安装详细说明文件,比官方更细
- 无线网卡安装DIY
- 网卡安装常见问题精解
- DB2数据库的安装
- CentOS下DB2数据库安装过程详解
- ghost安装系统软件硬盘安装器 安装ghost图文教程
- CentOS 6.3下编译安装Ruby 2.0笔记
- FREEBSD安装POSTGRESQL笔记
- Redis总结笔记(一):安装和常用命令
- FreeBSD 6.2 安装全程图解教程
- 安装Apache和PHP的一些补充
- Lua在windows下的安装及环境配置
- 安装软件 Nullsoft Install System 2.27汉化版 下载
- PHP 5.3.0 安装分析心得
- 关于MSSQL 2005的安装与补丁