记录我的课题框架Ubuntu16.04 caffe MATLAB 心路历程
好久之前就准备写,因为各种原因(主要是懒)一直没有写,现在想要整理一下,估计好多都忘了,能记住多少就写多少吧 。。。。。之后想起来在加上
一:系统安装 ubuntu16.04(双系统)
一、 下载ubuntu16.04镜像;
二、 划分系统安装盘;
三、使用ultraISO制作Ubuntu 16.04系统U盘启动盘;
四、 安装Ubuntu系统
1.下载镜像 ubuntu系统官网免费下载地址 http://www.ubuntu.com/download/desktop 制作U盘启动盘(去百度)
2.划分系统安装盘
右键点击我的电脑》管理》磁盘管理,选择一个空间较大的盘,右键选择压缩卷,笔者为Ubuntu16.04划分了100G的空间(空间大小根据自己的需要自行选择,建议如果只是安装作为练习使用有30G就可以,要是自己有运行的程序或者要处理数据还是建议多分一点空间),设置好容量大小后点压缩即可,不用给他设置盘符,我们在安装Ubuntu的时候在重新分区。注意:这种分区我们在Win7里面不能直接查看Ubuntu里的分区,但是在Ubuntu我们可以访问放在硬盘上的任何东西,也就是可以直接查看Win7系统的分区。
压缩完后,我们为Ubuntu分配的30G(分配多少自己看情况)空间就出来了,如下图所示:
3.安装Ubuntu
- 在电脑上插入制作好的U盘启动盘,重启电脑,F2(–》BIOS,选择boot界面,)选择通过USB启动。(不同型号的电脑主板进入BIOS方式有区别)
注意:进入boot界面后,不要选择UEFI U盘启动,否则容易出现安装完成后系统无法引导 - 不同的U盘型号不一样,选中启动项后,按回车进入。进入后,选择语言为中文,点击(试用)安装Ubuntu
- 之后下一步。。。。。。
- 在安装类型界然后选择最后一项“其他选项”,以为这样可以自己手动分区,点击继续。
- 现在我们看到的是硬盘的分区情况,找到前边有“空闲”二字,我们要做到就是,把空闲的空间给ubuntu划分分区。
-
点击“创建新分区表”
继续
选择产生的空闲分区
点击的“+”创建4个主要的基础分区
创建/分区:
>5G 主分区 空间起始位置 Ext4日志文件系统 /
创建swap分区:
2048MB 逻辑分区 空间起始位置 交换空间
创建boot分区:
200MB 逻辑分区 空间起始位置 Ext4日志文件系统 /boot
创建home分区:
剩余的空间 逻辑分区 空间起始位置 Ext4日志文件系统 /home
还可创建自己的其他分区如/123分区 只要设置为逻辑分区、空间起始位置、Ext4日志文件系统
我的只用了20G来安装所以只分了主要的基础分区
具体看 这个:https://jingyan.baidu.com/article/3c48dd348bc005e10be358eb.html
- 点击“空闲”的分区,选择下边的“添加”,上边填写分区空间大小,下边填写要挂载的分区,然后确定
/boot;引导分区,主分区,200M,起始,Ext4日志文件系统, (经验告诉我200M不够)
交换分区swap,逻辑分区,4000M,起始,交换空间,一般设置为同自己电脑内存大小即可;
根目录/,逻辑分区,15000M,起始,Ext4日志文件系统(10~15G即可); (多一点)(15*1024)
/home,逻辑分区,剩余空间数,起始,Ext4日志文件系统
6 重要的一点是在安装启动引导设备选择前面划分的/boot盘,查看/boot分区的编号,然后在下边的“安装启动引导区的设备”下拉框中选择/boot分区的
(记住boot分区编号,记住boot分区编号,记住boot分区编号)
重启时出现please remove installation media and close the tray(if any)then press Enter.
这个意思是说:请拨出U盘,并退出这个安装界面,然后按回车
(一定要拔出U盘!一定要拔出U盘!一定要拔出U盘!)7 安装完成后需要重新启动进入win7系统
二:安装cuda8.0
安装依赖库
# sudoapt-get install g++
# sudoapt-get install git
# sudo apt-get install freeglut3-dev
Ctr+alt+f4
进入后台
输入用户名和密码
User:
Password:
# sudo vi/etc/modprobe.d/blacklist-nouveau.conf
输入
blacklistnouveau
optionsnouveau modeset=0
进入命令模式下按i保存退出(:wq)
然后执行
#sudo update-initramfs -u
执行 lspci |grep nouveau查看是否有内容
# lspci |grep nouveau
如果没有内容 ,说明禁用成功,如果有内容,就重启一下再查看
# sudoreboot now
安装cuda 8.0
进入命令行模式(ctrl+alt+f4):
输入:sudo servicelightdm stop
Sudo sh cuda_8.0.44_linux.run–no-opengl-libs
按空格键 到100%
依次输入accept
Y
Y
Y
回车
Y
Y
回车
1. 安装完以后
2. sudo service lightdm start
3. ctrl+alt+t(进入命令行模式)
4. Cd /usr/local/cuda/samples
5. Sudo make all -j8
添加环境变量
1. sudo gedit /etc/profile
2. 在最后面加入两行代码,如果你还不会用vi进行编辑,请百度
3. exportPATH=/usr/local/cuda-8.0/bin:$PATH
4. exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
5. source/etc/profile
6. sudo gedit /etc/ld.so.conf.d/cuda.conf
7. /usr/local/cuda/lib64
终端下接着输入 sudo ldconfig
使链接生效
测试cuda是否安装成功
8. Cd/usr/local/cuda/samples/bin/x86_64/linux/release
9. Sudo./deviceQuery 如果pass说明成功了
10.
三:安装caffe
1. sudoapt-get install python-pip
2. git clone https://github.com/weiliu89/caffe.git安装ssd(caffe)
装caffe的依赖库
1.sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-devlibopencv-dev libhdf5-serial-dev protobuf-compiler
(如果没成功)
2.sudo apt-get install libprotobuf-dev libleveldb-devlibsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
--fix-missing
3.sudo apt-get install--no-install-recommends libboost-all-dev
4.sudo apt-get installlibatlas-base-dev
5.sudo apt-get installlibgflags-dev libgoogle-glog-dev liblmdb-dev
6. sudo apt-get installpython-numpy python-scipy python-matplotlib ipython ipython-notebookpython-pandas python-sympy python-nose
装python的依赖库
1. cd
home/xxx/caffe/python
2. for req in $(catrequirements.txt); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple$req; done
出现红色的警告
需要重新安装对应的未安装成功的库
四:配置cudnn5.0
# sudo tarxvf cudnn-7.0-linux-x64-v5.0-rc.tgz (版本可能不一样)
# cdcuda/include
# sudo cp*.h /usr/local/include/
# cd../lib64
# sudo cplib* /usr/local/lib/
# cd/usr/local/lib
# sudochmod +r libcudnn.so.5.0.5 (下载版本不一样后面的序号是不一样的)
# sudo ln-sf libcudnn.so.5.0.5 libcudnn.so.5 (下载版本不一样后面的序号是不一样的)
# sudo ln-sf libcudnn.so.5 libcudnn.so (下载版本不一样后面的序号是不一样的)
# sudoldconfig
注意:运行ssd时出现
Videoioerror V4/v4l
1.解决方案
apt-get install ffmpeg libavcodec-devlibavcodec52libavformat52 libavformat-dev
apt-get install libgstreamer0.10-0-dbglibgstreamer0.10-0libgstreamer0.10-dev
apt-get install libxine1-ffmpeg libxine-devlibxine1-bin
apt-get install libunicap2 libunicap2-dev
apt-get install libdc1394-22-devlibdc1394-22libdc1394-utils
apt-get install swig
apt-get install libv4l-0 libv4l-dev
五:
安装opencv3.0
Sudo unzip opencv-3.0.0.zip
sudo apt-get install cmake
opencv3 必装依赖库:
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
2.cd /opencv-3.0.0/modules/cudalegacy/src
sudo gedit graphcuts.cpp
替换内容
/*
#include "precomp.hpp"
// GraphCut has been removed in NPP 8.0
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) ||(CUDART_VERSION >= 8000)
void cv::cuda::graphcut(GpuMat&, GpuMat&,GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, Stream&) {throw_no_cuda(); }
void cv::cuda::graphcut(GpuMat&, GpuMat&,GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&,GpuMat&, GpuMat&, GpuMat&, Stream&) { throw_no_cuda(); }
*/
3.cd opencv-3.0.0
Sudo mkdir build
Cd build
Sudocmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
到download ippicv的时候停止 (ctr+c)
(把预先下载的Ippicv_linux_20141027.tgz复制到指令目录,不需要实时下载)
Ippicv_linux_20141027.tgz复制到以下目录下
Opencv-3.0.0/3rdparty/ippicv/downloads/linux…..
再次以下命令会很快通过
Sudocmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
Cd home/usr(hcy)/opencv-3.0.0/build/
编译opencv
make all -j8
sudo make install
复制/opencv-3.0.0/build/lib/cv2.so到 根目下/usr/local/lib/python-2.7/dist-packages/
Caffe编译过程
接下来要进入最后的步骤了,终端中 cd /home/user/caffe
cp Makefile.config.example Makefile.config
gedit Makefile.config
将USE_CUDNN := 1 取消注释,
WITH PYTHON LAYER=1 取消注释
打开opencv3
在 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
后面打上一个空格然后添加/usr/include/hdf5/serial
如果没有这一句可能会报一个找不到hdf5.h的错误
第二,在make过程中还会报一个ld找不到libhdf5 和libhdf5_hl的链接问题,这个原因可能也是因为hdf5的问题,首先看/usr/lib/x86_64-linux-gnu
目录下有没有libhdf5.so和libhdf5_hl.so,如果有的话,查看属性是否有正确的链接(正常情况下应该是没有这两个文件),然后右键在终端中打开 sudo ln libhdf5_serial.so.10.1.0 libhdf5.so
sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
注意,10.1.0和10.0.2可能不同电脑安装版本不同,注意看当前目录下存在的文件然后 sudo ldconfig
生效
cd /home/user/caffe
sudosu(进入管理员模式)make all -j
8make test -j
8make runtest
make pycaffe
makematcaffe
gedit/etc/profile
下面加上:exportPYTHONPATH=/home/XXX/caffe/python:$PYTHONPATH*
把模型VGG放到module里
六:MATLAB安装与配置
(添加路径 修改caffe里的makefile.configl 第一个#去掉 把路径写进去 /usr/local/MATLAB/R2014a)\2.配置接口
先解压part1
cd到MATLAB文件夹(到解压之后的地方,解压之后是镜像.iso)unrar.........
sudo ./install 安装 选择不联网安装
(1)修改caffe文件夹下的Makefile.config中Matlab的路径,即添加
- MATLAB_DIR := /usr/local/R2014a
(2)将Matlab的安装路径添加到PATH中
先打开.bashrc文件,
- sudo gedit ~/.bashrc
- export PATH=$PATH:/usr/local/R2016b/bin
(3)不需要改动gcc版本
(4)caffe.set_mode_cpu(); (make mattest)
会报错
出现的错误与http://blog.****.net/u012746763/article/details/50419153中提到的完全一样,因此我采纳了文中的建议,执行了下面的命令
- export LD_LIBRARY_PATH=/usr/local/R2016b/sys/os/glnxa64
- export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6
- make mattest
出错
这与http://www.cnblogs.com/laiqun/p/6031925.html中列出的错误是一致的,所以我又使用了该文中的建议,执行下列命令
- export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:/usr/local/cuda-8.0/lib64
- export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4:/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4:/usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/usr/lib/x86_64-linux-gnu/libfreetype.so.6
- make mattest
创建连接
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6
打开MATLAB
sudo su
cd caffe
source /etc/profile
source ~/.bashrc
ldconfig
matlab
打开MATLAB之后需要把路径加进去(path)
path:caffe里的matlab
/usr/local/MATLAB/
OK! 写到这里就结束了!写的有点混乱,尤其是MATLAB部分 好多都忘了 只是做个记录,以免以后忘记
参考文献
http://blog.****.net/u012260238 https://blog.****.net/u012260238/article/details/52713546
https://blog.****.net/auto1993/article/details/64965255
https://blog.****.net/rt5rte54654/article/details/54742981
https://blog.****.net/chandoudeyuyi/article/details/59651406(window10与Ubuntu16.04双系统)