blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
保存并退出。这一步是为了禁掉Ubuntu自带开源驱动nouveau。之后sudo reboot重启系统。在终端执行命令
lsmod | grep nouveau
可以查看nouveau模块是否被加载。如果什么都没输出,则执行下一步。
2、重启后屏幕分辨率变低,不用管。进入tty1文件模式,输入用户名密码后登陆,输入命令
bash NVIDIA-LINUX-X86_64-346.72.run --kernel-source-path=/usr/src/linux-headers-3.*.*
进行安装。这里的linux-headers-3.*.*是Linux系统源文件名。安装过程中有一些提示问题让你回答,注意,当提示
The distribution-provided pre-install script failed!Are you sure you want to continue?
的时候不用管,继续安装就行了,这个问题我至今没明白是什么原因导致的,但这不影响后续安装及使用。当提示
Would you like to register the kernel module sources with DKMS?This will allow DKMS to auomatically build a new module,if you install a different kernel later
的时候,回答No。
3、最好再执行命令
sudo apt-get install linux-image-extra-virtual
否则后续可能会出现如下错误提示:
modprobe: ERROR: could not insert'nvidia':Unknown symbolinmodule,or unknown parameter(see dmesg)
4、执行sudo /etc/init.d/lightdm start并重启电脑。重启后可能会产生分辨率问题,只需要更改/etc/X11/xorg.conf文件如下:
cd caffe-root/caffe-master
cp Makefile.config.example Makefile.config
make all
make test
make runtest
在make编译过程中会遇到一些问题,可能是由caffe本身文件兼容性问题造成的,比如:
1、提示make:protoc:命令未找到,这是因为protoc未安装,只需安装就行。
sudo apt-get install protobuf-c-compiler protobuf-compiler
2、提示“src/caffe/util/math_functions.cu(140):errot:calling a host function("std::signbit")from a globalfunction("caffe::sgnbit kernel")is not allowed”,
修改./include/caffe/util/math_functions.hpp 224行
删除(注释):using std::signbit
修改:DEFINE_CAFFE_CPU_UNARY_FUNC(sgnbit, y = signbit(x));
为:DEFINE_CAFFE_CPU_UNARY_FUNC(sgnbit, y = std::signbit(x)); 这是Yangqing Jia给出的解决方案,目前只有这一种方法。
我在编译的时候只对于某些版本的caffe会遇到情况2,对于第一个问题只要你按照前面的步骤做了应该不会出现的。虽然装这个花了好几天,不过总算是自己的努力换来了回报,希望caffe以后能优化的更完美,不要再在编译的时候遇上这么多麻烦,对于初学者是很不利的。希望大家共同学习,共同进步吧!