CentOS6.8 + cuda + caffe安装记录 (之一 cpu下caffe安装)
来源:互联网 发布:卖家淘宝客怎么查询 编辑:程序博客网 时间:2024/05/16 23:40
本次是在服务器上安装的caffe,并在GPU模式下编译运行的。如果希望知道Ubuntu下的安装经验,并只想在CPU下运行,请移步http://blog.csdn.net/u011636440/article/details/52438666
我的安装环境,在远程服务器安装的
- centos6.8
- gcc 4.4.7
- python 2.6
因为我直接在root权限下执行的,所有的命令都是管理员权限。各位如果在用户权限下执行,命令前请加sudo。
为了比较容易判断caffe编译不过时是哪部分的问题,本次安装分两步进行:先将CPU模式下的所有依赖装好;然后再装GPU和cuda。
注:apt-get是Ubuntu版本下的命令,CentOS默认软件安装命令为yum,可以给CentOS安装apt-get包,但是不推荐这么做。
1. 查看系统版本
cat /etc/issueuname –a
参考http://www.ha97.com/2987.html
2. 看官方安装指导
官方安装文档: http://caffe.berkeleyvision.org/install_yum.html
还有一个不错的教程参考: http://coldmooon.github.io/2015/08/03/caffe_install/
安装时几个用的上的参考: http://blog.csdn.net/chieryu/article/details/50218763
http://my.oschina.net/speedinghzl/blog/464142
http://www.ttlsa.com/linux/install-caffe-on-centos6-5/
3. 安装依赖库
yum install protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel
安装glog
下载安装包
wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
但是连不上Google的下载不了。这里给两种办法解决:
- 找个能连Google的机器下载,把本地文件(glog安装包)推送到远程服务器
修改机器的host文件,这里推荐一个https://laod.org/hosts/2016-google-hosts.html
服务器上有安装包以后
tar zxvf glog-0.3.3.tar.gzcd glog-0.3.3./configuremake && make install
Tips:本地文件推送到远程的方法
【参考: http://www.it165.net/os/html/201410/9574.html】
yum install lrzszrz
此时会弹出一个windowns的对话框,选择你要上传的文件就可以了,注意文件不能为空文件,也就是大小为0字节的文件,文件为空文件是不行的,会一直处于上传的状态
安装cmake
参考http://www.cnblogs.com/mophee/archive/2013/03/19/2969456.html
1、安装gcc等必备程序包(已安装则略过此步)
yum install -y gcc gcc-c++ make automake
2、安装wget (已安装则略过此步)
yum install -y wget
3、获取CMake源码包
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
4、解压CMake源码包
tar -zxvf cmake-2.8.10.2.tar.gz
5、进入目录
cd cmake-2.8.10.2
6、安装
./bootstrapgmakegmake install
安装gflags
wget https://github.com/schuhschuh/gflags/archive/master.zipunzip master.zipcd gflags-mastermkdir build && cd buildexport CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1make && make install
安装lmdb
git clone https://github.com/LMDB/lmdbcd lmdb/libraries/liblmdbmake && make install
执行第一句,出现git: command not found,说明尚未安装。
解决方法为
yum install -y git
基本开发工具安装
yum -y groupinstall "Development Tools"
添加EPEL repositories
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
4. 编译安装python2.7(centOS6上默认python2.6)
【参考http://www.ttlsa.com/linux/install-caffe-on-centos6-5/】
wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
编译安装python2.7(必须先安装zlib与openssl的包再执行编译)
先安装gcc zlib openssl 等包
tar -xvf Python-2.7.9.tgz -C /usr/srccd /usr/src/Python-2.7.9./configure --enable-sharedmake -j12make altinstall
(altinstall在安装时会区分已存在的版本)(解决libpython2.7.so.1.0办法:vi /etc/ld.so.conf 添加/usr/local/lib,然后ldconfig)
替换系统中的python
ls -l `which python python2 python2.6`rm /usr/bin/pythonln -s -f /usr/local/bin/python2.7 /usr/bin/python
保持yum可用性
vim /usr/bin/yum#!/usr/bin/python 改为 #!/usr/bin/python2.6
但是,这时出现libpython2.7.so.1.0: cannot open shared object file: No such file or directory
可以使用如下方式编译Python以解决这个问题:【参考http://blog.csdn.net/huzhenwei/article/details/7339548】
./configure --enable-shared --prefix=/usr/local/python27make && make installcp /usr/local/python27/lib/libpython2.7.so.1.0 /usr/local/libcd /usr/local/libln -s libpython2.7.so.1.0 libpython2.7.so
使用命令whereis libpython2.7.so.1.0得到如下结果就说明已经成功
libpython2.7.so.1: /usr/local/lib/libpython2.7.so.1.0
如果whereis没有结果,或者还有import错误,可以尝试如下操作:
在/etc/ld.so.conf中加入新行/usr/local/lib,保存后,运行
/sbin/ldconfig/sbin/ldconfig –v
5. 安装其他依赖库
安装boost-devel
用rpm -qa boost 查看CentOS系统中是否已有boost。我的机器虽然有,但是版本太低,所以重新安装:
获取安装包
wget -O boost_1_55_0.tar.bz2 http://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fboost%2Ffiles%2Fboost%2F1.55.0%2F&ts=1385953406&use_mirror=softlayer-ams
解压并安装
tar jxvf boost_1_55_0.tar.bz2cd boost_1_55_0./bootstrap.sh./b2sudo ./b2 install
安装opencv-devel
yum -y install cmake pkgconfig gtk2-devel python-devel numpy tbb-devel libpng-develwget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.10/opencv-2.4.10.zipunzip opencv-2.4.10.zipcd opencv-2.4.10mkdir buildcd buildcmake ../ -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_EXAMPLES=ON -DBUILD_NEW_PYTHON_SUPPORT=ON -DINSTALL_PYTHON_EXAMPLES=ONmake -j 2sudo make install
安装pip
curl -O https://bootstrap.pypa.io/get-pip.py # 得到一个get-pip.pypython get-pip.pyInstalling collected packages: pip, setuptools, wheelSuccessfully installed pip-7.1.0 setuptools-18.0.1 wheel-0.24.0
关于pip后来还出了一个问题,因为机器上装了两个版本的python,2.6.6是系统自带的,2.7.9是后来我装的(因为caffe需要python的版本大于2.7),然后我把2.7改成默认的python了。可是
pip –version
得到的结果是pip 8.1.2 from /usr/lib/python2.6/site-packages(python2.6)
也就是说默认的pip还是在Python2.6下的。
我想把pip装到2.7下,要不然的话使用pip安装别的软件(例如,pip install numpy)都是报错说2.6版本不支持啥的。
最后一条指令是不对的,因为这么写是卸载一个python包的方式,并不能把pip卸掉。
ptpi.python.org是pip官方网站,可以在上面下一个最新的包安装在2.7下。
由此可知机器上对于2.7版本的pip也安装了,只是不是默认的。
解决方法是做了一个硬链接
ln /usr/local/bin/pip2.7 /usr/bin/pip
让每次找pip版本的时候都找到pip2.7
6. 下载caffe,进行测试
当然这时是不能使用GPU的,只是在cpu上跑。先这样跑一次的好处就是如果后边出了错,可以很容易的知道是CPU部分的错还是GPU部分的错。
git clone https://github.com/BVLC/caffecp Makefile.config.example Makefile.configvim Makefile.config把CPU_ONLY = 1那行的#去掉make all
我在安装的过程中果然出现了错误。下面一一说明这些错误是如何解决的。
7. 各种报错及解决办法
error: invalid use of incomplete type ?.onst struct cv::Mat?
原因:opencv版本不够高。参考 http://stackoverflow.com/questions/29109991/issues-compiling-caffe-in-rhel-6-5-with-tesla-k80
解决办法:下载新版的opencv重新装一遍
wget https://github.com/Itseez/opencv/archive/2.4.13.zipmv 2.4.13.zip opencv-2.4.13.zip #重命名unzip opencv-2.4.13.zipcd opencv-2.4.13mkdir buildcd buildcmake ../ -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_EXAMPLES=ON -DBUILD_NEW_PYTHON_SUPPORT=ON -DINSTALL_PYTHON_EXAMPLES=ONmake -j 2sudo make install
找不到lcblas
找不到lcblas,但是我试图安装这个又安不了,好像是因为服务器的问题。
解决方法:ATLAS的位置 /usr/lib64/atlas — 会报错:lcblas 库找不到,修改Makefile.config最下面的LIBRARY_DIR 后面加上 /usr/lib64/atlas (这个问题是我实验室服务器的问题,正常来说大家不会遇到,或者改环境变量就可以了)
找不到共享库
error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such file or directory
【参考https://www.douban.com/note/327349156/】
解决方法:
vim /etc/ld.so.conf.d/opencv.conf在里边写入/usr/local/libldconfig –v
libprotobuf版本问题
protobuf的版本太低。错误代码在InitSolverFromProtoString()这个函数里,进到函数里发现调用的是protobuf。 原因是caffe-master使用的protobuf版本是2.6.0及以上,而yum install的protobuf是2.3.0,因此更新protobuf可以解决。【参考:http://blog.csdn.net/chieryu/article/details/50218763】
Tips:
安装的时候使用make安装,用remove是卸不掉的。需要在安装的那个文件夹中运行make uninstall。在安装时可以用命令把文件安装在指定文件夹下(./configure –prefix=/usr),这样的话在卸载的时候rm which protoc
【参考http://stackoverflow.com/questions/35896335/how-can-i-uninstall-protobuf-3-0-0】 卸载方法https://www.howtoinstall.co/en/ubuntu/trusty/protobuf-compiler?action=remove
待
make allmake testmake runtest
都编译通过的时候,便完成了caffe的安装。
- CentOS6.8 + cuda + caffe安装记录 (之一 cpu下caffe安装)
- CentOS6.8 + cuda + caffe安装记录 (之二 caffe测试)
- CentOS6.8 + cuda + caffe安装记录 (之三 caffe使用)
- CentOS6.8 + cuda + caffe安装记录 (之五 cuda安装)
- CentOS6.8 + cuda + caffe安装记录 (之四 GPU安装)
- Ubuntu 16.04 + cuda 8.0 + caffe安装记录
- CentOS6.5虚拟机安装Caffe大致记录
- cuda安装和caffe
- Caffe学习之一caffe安装
- caffe学习之一:caffe安装
- caffe 自己安装记录,cpu版
- [Ubuntu 16.04 LTS][Caffe][CPU only]Caffe安装记录
- Centos6安装Caffe
- Caffe Windows CPU 安装
- Ubuntu-CPU-Caffe安装
- Intel+Nvidia双显卡笔记本Linuxmint18下安装CUDA+OpenCV+Caffe安装记录
- Ubuntu下安装Caffe(CPU Only)
- Ubuntu1404下Caffe(Only CPU)安装
- 求最长回文子串(多种解法)
- corba应用示例
- 设置App标题栏与系统状态栏同色
- ios 给视频截取和给视频添加背景音乐
- Extjs4 combo组建初始化,加载第一条数据
- CentOS6.8 + cuda + caffe安装记录 (之一 cpu下caffe安装)
- Mali GPU OpenGL ES 应用性能优化--基本方法
- 百度地图开发相关
- 如何将本地已有项目加入git管理
- 安卓拨打电话实例
- PhpStorm 使用技巧
- 简单的方法 使用
- iOS开发之duplicate symbols for architecture x86_64错误
- 阅读郭林《第一行代码》的笔记——第6章 数据存储全方案,详解持久化技术