说来惭愧,之前完全没接触过装系统,微星的笔记本买回来是没有系统的,当时是同学帮我装的win10。最近需要做物体检测方面的工作,用DL,还是linux下比较方便。一个没装过系统的小白开始了安装第二个系统ubuntu之旅。现在已经安装完毕并且配置好了caffe-ssd,测试代码也已经跑成功了,所以来take some notes。
目前笔记本:win10+ubuntu16.04NVIDIA960m(驱动为375.66)+ 128G固态硬盘
- 安装ubuntu16.04
- 安装NVIDIA显卡驱动
- 安装CUDA8.0 cuDNN v5.1
- 安装caffe所需依赖包
- 配置caffe-ssd并测试
安装ubuntu16.04
我的win10装在固态硬盘中,ubuntu在机械硬盘中。
- 分盘。
在机械硬盘中划分出一块区域,我划了100G。用windows自带的磁盘管理就可以。 - 制作系统盘。
实验室有做好的盘,就直接拿来用了。 安装
a.关闭security boot
笔记本上电按DELETE
进入BIOS,切换到boot菜单下,进入security boot关闭它。我是用legacy模式安装,同学之前特意强调我要用这个模式,可是后来他自己用UEFI模式也装成功了,所以应该两个模式都可以。
b.引导安装
插上系统盘,重启笔记本,上电后按F11进入启动选项中,选择自己的U盘从U盘启动,引导安装。接着按F1-F6任意进入引导项(在装的过程中,很多次不跳出引导项,直接U盘启动,因为没有修改属性,所以总是卡在安装界面上),切到“install ubuntu”项,按e
键进行编辑,在“splash —”后面添加“ nomodeset”,添加完按F10,等一会就可以愉快的看到安装界面了,一路选下去就好了,在分区的时候,可以参考我的在下面选择引导器安装的分区的时候和
/boot
分区选一致就好了,一路装下去重启就好啦。
安装NVIDIA显卡驱动
重启后输完密码发现桌面什么都没有,真的是什么都没有,只有一个鼠标,尴尬。这是显卡驱动的问题,重装就好了。在装的过程中还遇到了循环登录的问题,还有装完显卡驱动发现在NVIDIA X server settings中不能切换显卡的问题,于是把解决方案记录下来。
- 卸载原有的NVIDIA驱动
Ctrl + Alt + F1
进入命令行模式,登录完输入命令
sudo apt-get remove --purge nvidia*
- 禁止nouveau集成显卡驱动
这是第三方为ubuntu开发的开源驱动,在ubuntu中集成,我们要把它禁止才能安装官网的驱动。把nouveau驱动添加到黑名单中。
#修改blacklist.conf属性,添加修改权限
sudo chmod 666 /etc/modprobe.d/blacklist.conf
#编辑blacklist.conf
sudo gedit /etc/modprobe.d/blacklist.conf
#在文件后添加以下5行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
重启后就能看到桌面了,侧边栏什么的都有了,然后就能用网页愉快的下载驱动了。
- 安装NVIDIA官网驱动
在NVIDIA官网驱动下载对应的驱动文件(.run文件)
Ctrl + Alt + F1
进入命令行模式。cd命令进入到/Downloads文件夹中,ls一下,看有没有刚才下载的安装文件。
#给驱动文件赋予执行权限 可以用TAB键来自动补全
sudo chmod a+x NVIDIA-Linux-x86_64-375.66.run
#安装(一定要把后面参数带上,否则会循环登录的)
sudo ./NVIDIA-Linux-x86_64-375.66.run –no-x-check –no-nouveau-check –no-opengl-files
运行完输入nvidia-smi
可以查看驱动信息,如果能查到说明安装成功。
重启后发现NVIDIA X server settings 中并不能切换显卡,在命令行模式下用apt-get再装一次。
输入sudo apt-get install nvidia-
后双击TAB键,找到最新的版本号,最短的就好,比如我的sudo apt-get install nvidia-375
再装一次。重启之后在NVIDIA X server settings 中切换到N卡重启就正常了。如下图。
安装CUDA8.0 cuDNN v5.1
参考的这里CUDA8.0安装写的很详细啊
安装caffe所需打依赖包
懒人必备:apt-get
(其实我是自己装了,所有依赖包都手动装了,最后发现要链接路径什么的,编译的时候总是出问题,最后发现还是apt-get最好用)
sudo apt-get install git
sudo apt-get update
sudo apt-get install build-essential cmake git pkg-config
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install libatlas-base-dev
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install python-dev #默认安装python2.7,可以手动安装python3
sudo apt-get install python-numpy python-scipy
安装caffe-ssd
按照官方的指令装就好啦,其中需要修改三个文件,具体摘录如下:
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd
# Modify Makefile.config according to your Caffe installation.
cp Makefile.config.example Makefile.config
make -j8
# Make sure to include $CAFFE_ROOT/python to your PYTHONPATH.
make py
make test -j8
# (Optional)
make runtest -j8
官方给的步骤在上面,但是自己用发现了问题,需要调整,如下
# Modify Makefile.config according to your Caffe installation.
cp Makefile.config.example Makefile.config
#copy完要修改文件
#用gedit打开Makefile.config文件
#打开之后修改如下内容:
//若使用cudnn,则将# USE_CUDNN := 1 修改成: USE_CUDNN := 1
//若使用的opencv版本是3的,则将# OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 3
//若要使用python来编写layer,则需要将# WITH_PYTHON_LAYER := 1 修改为 WITH_PYTHON_LAYER := 1
//重要的一项 将# Whatever else you find you need goes here.下面的 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
//修改为: 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 /usr/lib/x86_64-linux-gnu/hdf5/serial //这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径
#修改Makefile文件
//将NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
//替换
//NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
#修改/usr/local/cuda/include/host_config.h文件
//将#error-- unsupported GNU version! gcc versions later than 5.0 are not supported!
//改为 //#error-- unsupported GNU version! gcc versions later than 5.0 are not supported!
# make -j8太快,导致有的文件还没有make出来后面就要用,会报错,用下面的
make all
# Make sure to include $CAFFE_ROOT/python to your PYTHONPATH.
# 我自己装了python3.5,需要将Makefile.config文件中做修改,如下:
//# Uncomment to use Python 3 (default is Python 2)
//最好自己去 /usr/lib/x86_64/ 中去看一看libboost_python的后面是py多少,修改下面打python库的路径 这样下一句就不会报错了
// PYTHON_LIBRARIES := boost_python-py35 python3.5m
// PYTHON_INCLUDE := /usr/include/python3.5m \/usr/lib/python3.5/dist-packages/numpy/core/include
make py
make test -j8
# (Optional)
make runtest -j8
运行完不报错,那么恭喜你,你的caffe-ssd就配置成功了,快去跑例程。。。
感谢身边一票人的帮助,近到实验室,远到沈阳的成都的同学,感谢!