Ubuntu16.04安装Caffe
一、安装ccmake
ccmake和cmake的功能是一样的,但它很方便设置编译前的一些参数,安装只需从官网下载压缩包,解压,最后将解压得到的文件夹中的bin文件夹的路径加入PATH环境变量中即可。
二、安装opencv
我用的是opencv3.2.0,注意不要勾选CUDA(安装CUDA之前编译opencv不用考虑这点),这样会使opencv编译得很慢。
三、安装CUDA、cuDNN、NCCL
安装CUDA
去nvidia下载CUDA8.0

(1)直接使用CUDA的.run文件进行安装
1)卸载掉原有的nvidia驱动
如果之前使用的是sudo apt-get install nvidia*方式安装的,执行
sudo apt-get remove --purge nvidia*
如果之前是使用.run文件安装的则使用sudo nvidia-uninstall命令。由于我使用.run文件安装,所以即使之前使用.run文件安装过nvidia的驱动,在安装过程中也会卸载掉之前的驱动,因此可以不去手动卸载。
2)cd CUDA安装文件的下载目录,赋予run文件执行权限(根据自己的文件名替换)
sudo chmod a+x cuda_8..61_375.26_linux.run
3)禁用nouveau
在文件/etc/modprobe.d/blacklist.conf最后一行添加blacklist nouveau(可以sudo gedit /etc/modprobe.d/blacklist.conf,将blacklist nouveau粘贴至最后一行保存)
4)执行
sudo update-initramfs -u
5)重启,然后执行
lsmod | grep nouveau
若没有输出,说明nouveau成功被禁用(一定要确保nouveau被禁用才能安装驱动,不然会出错)
6)禁用X服务
sudo service lightdm stop
执行此命令后桌面会变成黑屏。
7)按Ctrl+Alt+F1,进入命令行界面,登录,再次进入CUDA安装文件的下载目录,先执行
sudo ./cuda_8..61_375.26_linux.run --help
查看有没有opengl的相关选项,有一个相关选项给出的说明如下

我根据说明选择了--no-opengl-libs,以防止出现循环登录桌面的问题
sudo ./cuda_8..61_375.26_linux.run --no-opengl-libs
安装包里有CUDA Toolkit,Samples,NVIDIA driver三项。安装选项全都输入“y”确认安装或按照默认路径安装(caffe的配置文件用的即是默认路径)。
8)reboot重启,或者运行
sudo service lightdm start
即可进入桌面,运行nvidia-smi,得到类似下图,说明驱动安装成功。

(2)第二种方法可以事先将cuda_8.0.61_375.26_linux.run解压成CUDA Toolkit,Samples,NVIDIA driver三部分,得到三个文件
cuda-linux64-rel-8.0.-.run
cuda-samples-linux-8.0.-.run
NVIDIA-Linux-x86_64-375.26.run
解压的方式为
chmod +x cuda_8..61_375.26_linux.run
mkdir nvidia_installers
./cuda_8..61_375.26_linux.run -extract=`pwd`/nvidia_installers
解压了之后驱动可以单独安装,因为有些时候会出现驱动崩溃的情况(网上有不少人遇到过,我也遇到过)。装好驱动之后升级内核要谨慎,我曾经无意升级了内核,发现驱动丢失,重新安装则出现Unable to load the kernel module 'nvidia.ko'的错误,折腾了好久才发现是升级内核所致。然后参照这张帖子修改开机时进入老版本的内核才成功安装驱动(方案三使用dkms安装驱动似乎能在升级内核时自动将驱动编译进内核,避免驱动丢失,这个没有尝试过)。当然,其他原因也会导致驱动丢失,这时只需按照上述方法再安装一次驱动即可。如果按照上述方法安装好驱动后始终无法进入桌面,可以参考这个方法恢复nouveau驱动,装个CPU版本的caffe玩玩,不用重装系统再折腾了,来日方长嘛。。。
装好CUDA后,需要将相关的路径加入到系统变量中(以下是按默认路径安装后的操作)。
在文件~/.bashrc的最后加入相关的路径
gedit ~/.bashrc
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
综上可见,装好系统后,第一步应安装CUDA,以免装好其他软件之后再装驱动,无法进入桌面就唧唧了。。。
接下来安装cuDNN
去nvidia官网下载一个与CUDA版本相对应的cuDNN

这是官网给的安装步骤

下载cuDNN需要在官网注册,可以自己注册一下,很快搞定。
另外,如果需要支持多张GPU的话,还需要安装NCCL
如果是按照默认路径安装CUDA的话,只需
git clone https://github.com/NVIDIA/nccl.git
cd nccl
sudo make install -j4
NCCL的库文件和头文件将安装在/usr/local/lib和/usr/local/include中。若不是按照默认路径安装CUDA,可按照官网给的安装步骤(需指定一下CUDA的安装位置)安装。
四、安装Anaconda
去官网https://www.anaconda.com/download/下载

我采用cmake编译(方便查看源码),若要使用caffe的python接口需要很多python的依赖库,Anaconda集成了很多的python库,能够满足编译caffe的python接口的需求。若自己安装依赖库也可,但是比较麻烦。直接运行Anaconda2-4.4.0-Linux-x86_64.sh,选择安装路径,然后安装,装好后将anaconda_install_path/bin加入到PATH环境变量中.
最后安装一些常用的包,其中的protobuf是使用caffe的python接口必需要使用的,scikit-image程序中经常用到的.打开终端,依次安装
conda install protobuf
conda install scikit-image
五、安装第三方的一些依赖库
参考官网http://caffe.berkeleyvision.org/install_apt.html
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 libboost-python-dev
caffe依赖的BLAS本文使用ATLAS
sudo apt-get install libatlas-base-dev
还有
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
六、编译caffe
从https://github.com/BVLC/caffe/下载caffe源代码,进入解压目录,然后在此打开终端
mkdir build
cd build
ccmake ..
make
make install
make runtest
在ccmake之后出现的界面中需要选择编译的配置参数,如是否使用CUDA,即GPU加速,是否使用cuDNN加速,还要指定opencv的安装路径,然后按c完成configure,configure成功之后再按g生成Makefile文件。
最后一步make runtest时遇到问题

解决方法参考:https://itbilu.com/linux/management/NymXRUieg.html
解决步骤为
直接去根目录,然后在搜索框中搜索libstdc++.so.6,找到libstdc++.so.6.0.21的位置,将其复制到上面出问题的目录中,即anaconda_install_path/lib
删除原来的软连接
rm -rf libstdc++.so.
建立新的软连接
ln -s libstdc++.so.6.0. libstdc++.so.
这样make runtest便可以通过。
七、设置caffe的python接口
需要将caffe安装目录下的python文件夹的路径加入PYTHONPATH环境变量中
gedit ~/.bashrc
在文件末尾添加一行
export PYTHONPATH=caffe_install_path/python:$PYTHONPATH
然后重新打开终端输入python,import caffe,报错

参考https://stackoverflow.com/questions/37666241/importing-caffe-results-in-importerror-no-module-named-google-protobuf-interna
在终端中输入anaconda_install_path/bin/pip install protobuf安装protobuf。最后重新import就没有错误了。至此,安装完成。
Ubuntu16.04安装Caffe的更多相关文章
- Ubuntu16.04安装Caffe最全最详细教程(CPU)
转载请附上本文链接:https://www.cnblogs.com/acgoto/p/11570188.html 一.前言 为了安装caffe,本人已经在centos7.x上试错了1次,目前弃疗~:在 ...
- ubuntu16.04 安装 caffe cuda 相关流程
不多说了,经历了很多莫名其妙的错误最后终于安装好了,直接放安装脚本: #!/bin/bash #安装时要注意有些库可能安装失败以及安装caffe有和protobuf相关错误时可能需要重新对protob ...
- ubuntu16.04 安装caffe以及python接口
http://blog.csdn.net/qq_25073253/article/details/72571714http://blog.csdn.net/greed7480/article/deta ...
- ubuntu16.04安装jdk,tomcat
ubuntu16.04安装jdk,tomcat 最近装了一下tomcat,网上的教程很多,我也试了很多次,但是有一些教程关于tomcat配置是错误的,让我走上了歧途.差点重装系统,还好王总及时出手帮助 ...
- Ubuntu16.04 安装openjdk-7-jdk
Ubuntu16.04 安装openjdk-7-jdk sudo apt-get install openjdk-7-jre 或者sudo apt-get install openjdk-7-jdk ...
- Ubuntu16.04安装GTK3主题:OSX-Arc
Ubuntu16.04安装GTK3主题:OSX-Arc GTK3主题:OSX-Arc描述: 前几个月,Gnome3.20升3.22的时候,出现了大量主题崩溃的现象,其中包括Arc.Flatabulou ...
- Ubuntu16.04安装opencv for python/c++
Ubuntu16.04安装opencv for python/c++ 网上关于opencv的安装已经有了不少资料,但是没有一篇资料能让我一次性安装成功,因此花费了大量时间去解决各种意外,希望这篇能给一 ...
- ubuntu16.04安装不上有道词典的解决办法
转自:http://www.linuxdiyf.com/linux/21143.html ubuntu16.04安装不上有道词典,提示: le@hu-pc:~/下载$ sudo dpkg -i you ...
- Ubuntu16.04安装mongodb
Ubuntu16.04安装mongodb copy from: http://blog.csdn.net/zhushh/article/details/52451441 1.导入软件源的公钥 sudo ...
随机推荐
- 学习 java netty (一) -- java nio
前言:近期在研究java netty这个网络框架,第一篇先介绍java的nio. java nio在jdk1.4引入,事实上也算比較早的了.主要引入非堵塞io和io多路复用.内部基于reactor模式 ...
- ubuntu下安装AndroidStudio
近期将电脑的操作系统换成了ubuntu,对于不习惯win8/win10的人来说ubuntu确实是一个不错的选择,主要的软件都ok了,至于QQ什么的,大家能够去找wine版的,或者直接下载一个叫Cros ...
- Python基本数据类型之数字int
数字 int(x, base=None) 将x转换为一个整数.base为按照多少进制进行转换 float(x) 将x转换到一个浮点数. complex(x) 将x转换到一个复数,实数部分为 x,虚数部 ...
- [Offer收割]编程练习赛40
不到一个小时AK,虽然是VP的,舒服,第一次.都简单的一比,没什么可说的. 查找三阶幻方 #pragma comment(linker, "/STACK:102400000,10240000 ...
- 关于中文期刊LaTeX的CCT相关
最近写完了大论文,回身看了一下CTeX的信息,看了下弄改进版套装的山大和清华的两位大神的博客,发现大神们倒腾过CCT. CCT的FTP还是一直可用的,ftp://ftp.cc.ac.cn/pub/cc ...
- (转)Webpack2 + Vue2 + Vue-Router2 如何实现懒加载?
webpack2 的中 System.import 方法将被弃用, 推荐改成以下写法: https://www.mmxiaowu.com/article/5848239bd4352863efb5546 ...
- 在AndroidManifest(清单文件)中注册activity(活动)及配置主活动、更改App图标、App名称、修改隐藏标题栏
打开app/src/main/AndroidManifest. <?xml version="1.0" encoding="utf-8"?> < ...
- 【Five-Minute Share】“请先了解所使用的工具 ,磨刀不误砍柴工”
数据是应用系统的血液,没有数据的系统应用价值是非常有限的.经过多年的观察发现,身边很多的程序开发人员在开发应用系统的时候,都是按照标准SQL语法及应用方法去进行数据库设计,并进行应用开发的,没有任何的 ...
- 转载:关于 python ImportError: No module named 的问题
关于 python ImportError: No module named 的问题 今天在 centos 下安装 python setup.py install 时报错:ImportError: N ...
- 将电脑特定文件夹保存在U盘中
为什么 各种网盘,借着国家扫黄的阶梯,纷纷取消自己的网盘的服务.但自己有一些不是很大,但又很重要的东西,比如说代码(虽然学的渣) 怎么做 再网上百度,有一些将U盘的文件偷偷拷到电脑的脚本,改一下复制文 ...