ubuntu16.04+caffe+cuda8.0+cudnn+opencv3+python3安装教程
2017-06-07 18:19
1181 查看
本人是技术小白,刚开始接触caffe。第一次写博客,目的就是为了把自己的笔记存档,方便以后查阅。所以如果有写的不好或者不对的地方,还望各位大佬多多指教。
caffe的安装是在ubuntu16.04下安装的,关于ubuntu系统的安装这里不再陈述,网上有大量的教程可供参考。这篇文章主要讲一下自己在安装配置caffe的过程中遇到的各种问题和各种坑。。。
1.安装相关依赖项
2.安装NVIDIA驱动
(1)查询NVIDIA驱动
首先去官网(http://www.nvidia.com/Download/index.aspx?lang=en-us)查看适合自己显卡的驱动,下面是适合我的显卡的驱动:
![](https://img-blog.csdn.net/20170607170713447?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20170607170800402?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(2)安装驱动
安装之前先卸载已经存在的驱动版本:
这里有两种方法:
(1)利用“软件和更新”来安装,依次选择 系统设置->软件和更新->附加驱动->选择最新的驱动->应用更改
安装时可能遇到的问题:点击完应用更改一段时间后并没有成功安装,再次点击却出现闪退的现象,后来发现是因为依赖的问题,通过在终端输入以下命令:
备注:之前都是用这种方法,可是后来重装系统后再次安装闪退,使用这个方法也解决不了,就用的命令行安装的
(2)命令行安装:
安装完成之后输入以下指令进行验证:
若列出了GPU的信息列表则表示驱动安装成功。
3.cuda 安装
这里我需要说一下,cuda7.5和cuda8.0我都安装过,开始安装cuda7.5的过程中,后来make时出现nvcc错误,查阅发现ubuntu16.04适合安装cuda8.0,果断转8.0
cuda都是在官网下载的,这里不再赘述
在终端cd到所下载的安装包所在的目录,进行MD5检验,确保安装包正常:
检验正确后,输入如下代码安装(第一行修改文件权限,第二行执行文件安装):
注意后面的override是必须的,这样才能保证安装的过程中,不会出现编译器不支持的错误。另外,在选择条件的过程中,一定不要再次安装nvidia驱动,虽然cuda.run文件本身是包含又nvidia驱动的,但是本处直接安装会出错。下图是安装.run文件的配置:
![](https://img-blog.csdn.net/20170607172217207?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这里可能会出现miss library的情况,解决方案参考http://stackoverflow.com/questions/22360771/missing-recommended-library-libglu-so
4.cudnn安装
下载地址:https://developer.nvidia.com/cudnn
cudnn-7.0-linux-x64-v4.0-prod.tgz
进入下载目录解压:
cd进入cudnn解压之后的include目录,在命令行进行如下操作:
再将lib64目录下的动态文件进行复制和链接:
结果如下:
![](https://img-blog.csdn.net/20170607173122851?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20170607173236477?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20170607173410697?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
已链接好!
然后设置环境变量和动态链接库:
然后再打开的文件末尾加上(“=”前后不要有空格)
保存之后创建链接文件:
这时出现vim找不到命令,就使用
按下字母i在文件中编辑加入以下内容:
按下esc,输入:wq保存后退出。并在终端输入以下命令使该链接生效:
![](https://img-blog.csdn.net/20170607174358375?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
使用sample里面的例子来测试还需要编译。因为当前的cuda还不支持gcc5.0以上的版本,在编译之前,我们需要修改配置文件,否则无法编译成功。(之前试过降低gcc版本,搞了很久没成功,这样改会有warning,但是还是先这样吧。)
117行如下:
查看自己的gcc版本:
$ gcc –version
是5.4的版本。所以将117行修改为:
保存后退出。然后进入用例文件进行编译(注意执行第二步命令时候需要较长时间是正常现象):
可能报错:
![](https://img-blog.csdn.net/20170607174928426?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
http://blog.sina.com.cn/s/blog_9579544301014mt5.html (参考)
![](https://img-blog.csdn.net/20170607175005912?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
因为在usr/lib下有这个库文件,所以执行
参考http://blog.csdn.net/jiqiujia/article/details/19406609
执行了之后还是报错,又goole之后,执行
编译成功。
![](https://img-blog.csdn.net/20170607175416105?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
说明显卡驱动和cuda安装成功。
5.opencv安装
官网下载之后解压:
安装一些依赖项:
生成的文件在bulid中,而生成的CMakeList.txt文件在上一级文件中;
在弹出的文件开头加入一行(注意里面的引号要英文状态下的):
set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -D_FORCE_INLINES”)
然后按esc和:wq保存退出。
编译安装:
此步出现的问题:
解决方法:
以上只是将opencv编译成功,还没将opencv安装,需要运行下面指令进行安装:
6.python安装与配置
第一是直接安装anaconda,去官网下载 ,选择linux 64bit 2.7版本下载安装,anaconda安装方便但是需要在最后的make配置文件中更改python包含路径。
第二种方法就是使用原生的python2.7版本,终端下
这里我们用pip安装一些python需要的依赖包,不过为了避免各种问题,也可以通过apt-get安装,反正我这两种方式都安装了一遍(-.-)
第一种:
选择的是anaconda linux64 2.7版本python2.7 。下载完成之后,最好也要进行md5sum的检验。
完成之后,cd进入下载文件所在的目录,在命令行输入:
yes
(ENTER)
yes
这一选项把PATH=/home/mwp/anaconda2/bin加到了环境变量中。
添加库:
添加
重启电脑之后,在命令行输入:
ipython
就可以看到Python的版本。
第二种:
使用原生的python2.7版本,终端下
sudo apt-get install python-pip #安装pip
这里我们用pip安装一些python需要的依赖包,不过为了避免各种问题,也可以通过apt-get安装,反正我这两种方式都安装了一遍(-.-)
以caffe默认解压到/home/mwp/ ,文件夹名caffe为例
这里用pip安装可能速度很慢,很可能下载好几个小时,推荐用清华大学的pip源临时安装,所以命令改为如下:
这里如果第一次有很多红字错误,建议再运行几遍指导安装成功,对于黄字提示无需理会,可能是pip版本需要更新。
安装了python还不行,还得安装一下ipython,后者更加方便快捷,更有自动补全功能。而ipython notebook是ipython的最好展现方式。最新的版本改名为jupyter notebook,我们先来安装一下。(如果安装了anaconda, jupyter notebook就已经自动装好,不需要再安装)
备注:
如果安装的是python3版本的anaconda,打开notebook时可能会出现类似”/lib/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found”的问题,命令行查找发现:
原因是anaconda3中自带的libgcc版本是libgcc 4.8.5-2,然而caffe中编译python需要更高的版本libgcc5.2.0。
解决办法:
这时就可以运行notebook
就会在浏览器中打开notebook, 点击右上角的New-python2, 就可以新建一个网页一样的文件,扩展名为ipynb。在这个网页上,我们就可以像在命令行下面一样运行python代码了。输入代码后,按shift+enter运行,更多的快捷键,可点击上方的help-Keyboard shortcuts查看,或者先按esc退出编辑状态,再按h键查看。
安装python3的其实和上面基本是一致的,只不过是把对应的版本号换掉即可,但是,在caffe的配置中真真差了很多事啊。因为我后来重新配置的python3的环境,心累。。。。。
7.caffe安装与配置
下载caffe:
安装配置caffe:
配置文件修改(看英文提示根据具体修改):
如果安装的是Anaconda3,则按照下面的方式:
为hdf5之类的文件创建新的链接
\首先执行下面两句话:
执行
然后根据情况执行下面两句:
注意:这里的10.1.0和10.0.2根据不同的系统可能对应的数字会不同,比如在ubuntu16.04中其数字就是10.1.0.
具体的数字可以在输入命令时候使用tab键补全查看 .
打开makefile文件搜索并替换
在命令行输入:
在打开的文件末尾加上:
在命令行输入:
然后进入caffe目录:
如果编译的是Anaconda3版本的,则可能出错:
因为在配置文件的第 74 行中有 PYTHON_LIBRARIES := boost_python3 ,但是在系统中无法找到 boost_python3.lib 这个库文件。
解决方案如下:
检查是否有如下文件:
如果有,说明我们的系统中已经有了这种库文件,只是文件名不同。
重新编译即可通过。
编译成功,界面显示如下:
![](https://img-blog.csdn.net/20170607181018371?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
在运用anaconda和matlab时都需要修改相应的内容。
anaconda需要将caffe头文件进行链接:
输入
保存后在命令行输入:
![](https://img-blog.csdn.net/20170607181109174?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
python也配置成功;
报错如下:
![](https://img-blog.csdn.net/20170607181214067?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
命令操作如下:
A.把环境变量路径放到 ~/.bashrc文件中
B.使环境变量生效
继续报错:
![](https://img-blog.csdn.net/20170607181246967?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
执行命令:
![](https://img-blog.csdn.net/20170607181318693?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
执行conda install libgcc,报错:
![](https://img-blog.csdn.net/20170607181356108?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
我装的是anaconda2, 解决方法是在其中安装protobuf最新版本
![](https://img-blog.csdn.net/20170607181441578?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20170607181522109?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20170607181533759?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF0bzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
编译成功,即可调用caffe模块。
至此,caffe的安装结束,在整个过程中,重装系统n多次,都快郁闷死了,就是不断的查询不断的改,不断的make,成功的那一刻确实是很开心的。
caffe的安装是在ubuntu16.04下安装的,关于ubuntu系统的安装这里不再陈述,网上有大量的教程可供参考。这篇文章主要讲一下自己在安装配置caffe的过程中遇到的各种问题和各种坑。。。
1.安装相关依赖项
$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 $sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev $sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
2.安装NVIDIA驱动
(1)查询NVIDIA驱动
首先去官网(http://www.nvidia.com/Download/index.aspx?lang=en-us)查看适合自己显卡的驱动,下面是适合我的显卡的驱动:
(2)安装驱动
安装之前先卸载已经存在的驱动版本:
这里有两种方法:
(1)利用“软件和更新”来安装,依次选择 系统设置->软件和更新->附加驱动->选择最新的驱动->应用更改
安装时可能遇到的问题:点击完应用更改一段时间后并没有成功安装,再次点击却出现闪退的现象,后来发现是因为依赖的问题,通过在终端输入以下命令:
$sudo apt-get install -f
$sudo apt-get update后 再次安装问题就解决了。
备注:之前都是用这种方法,可是后来重装系统后再次安装闪退,使用这个方法也解决不了,就用的命令行安装的
(2)命令行安装:
sudo add-apt-repository ppa:xorg-edgers/ppa sudo apt-get update sudo apt-get install nvidia-375 #注意在这里指定自己的驱动版本!
安装完成之后输入以下指令进行验证:
$sudo nvidia-smi或者
$sudo nvidia-settings
若列出了GPU的信息列表则表示驱动安装成功。
3.cuda 安装
这里我需要说一下,cuda7.5和cuda8.0我都安装过,开始安装cuda7.5的过程中,后来make时出现nvcc错误,查阅发现ubuntu16.04适合安装cuda8.0,果断转8.0
cuda都是在官网下载的,这里不再赘述
在终端cd到所下载的安装包所在的目录,进行MD5检验,确保安装包正常:
$sudo md5sum cuda.run
检验正确后,输入如下代码安装(第一行修改文件权限,第二行执行文件安装):
$ chmod 777 cuda.run $ sudo ./cuda.run --override
注意后面的override是必须的,这样才能保证安装的过程中,不会出现编译器不支持的错误。另外,在选择条件的过程中,一定不要再次安装nvidia驱动,虽然cuda.run文件本身是包含又nvidia驱动的,但是本处直接安装会出错。下图是安装.run文件的配置:
这里可能会出现miss library的情况,解决方案参考http://stackoverflow.com/questions/22360771/missing-recommended-library-libglu-so
4.cudnn安装
下载地址:https://developer.nvidia.com/cudnn
cudnn-7.0-linux-x64-v4.0-prod.tgz
进入下载目录解压:
$ tar zxvf cudnn-7.0-linux-x64-v4.0-prod.tgz
cd进入cudnn解压之后的include目录,在命令行进行如下操作:
$ sudo cp cudnn.h /usr/local/cuda/include/#复制头文件
再将lib64目录下的动态文件进行复制和链接:
$ sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库 $ cd /usr/local/cuda/lib64/ $ sudo ls -al | grep libcudnn#查看已有链接
结果如下:
$ sudo rm -rf libcudnn.so libcudnn.so.4 #删除原有动态文件 $ ls -al | grep libcudnn #再次查看已有链接
建立新的链接 $ sudo ln -s libcudnn.so.4.0.7 libcudnn.so.4 $ sudo ln -s libcudnn.so.4 libcudnn.so 再次查看 $ ls -al | grep libcudnn
已链接好!
然后设置环境变量和动态链接库:
$ sudo gedit /etc/profile
然后再打开的文件末尾加上(“=”前后不要有空格)
export PATH=/usr/local/cuda-8.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
保存之后创建链接文件:
$ sudo vim /etc/ld.so.conf.d/cuda.conf
这时出现vim找不到命令,就使用
$sudo rpm检查一下vim是否安装,提示rpm找不到命令,证明rpm没有安装,根据
$sudo apt install rpm安装,再执行
sudo rpm -qa|grep vim什么结果也没返回。在命令行输入命令
sudo apt install vim再执行
sudo vim /etc/ld.so.conf.d/cuda.conf现在就可以打开了。
按下字母i在文件中编辑加入以下内容:
/usr/local/cuda-8.0/lib64
按下esc,输入:wq保存后退出。并在终端输入以下命令使该链接生效:
$ sudo ldconfig出现下列情况:
解决方法: $ sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org $ sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org $ sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1 $ sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1
使用sample里面的例子来测试还需要编译。因为当前的cuda还不支持gcc5.0以上的版本,在编译之前,我们需要修改配置文件,否则无法编译成功。(之前试过降低gcc版本,搞了很久没成功,这样改会有warning,但是还是先这样吧。)
$ cd /usr/local/cuda-8.0/include/ $ sudo cp host_config.h host_config.h.bak #备份编译头文件 $ sudo gedit host_config.h
117行如下:
#if __GNUC__ > 5
查看自己的gcc版本:
$ gcc –version
是5.4的版本。所以将117行修改为:
#if __GNUC__ > 5|| (__GNUC__ == 5 && __GNUC_MINOR__ > 9)
保存后退出。然后进入用例文件进行编译(注意执行第二步命令时候需要较长时间是正常现象):
$ cd /usr/local/cuda-8.0/NVIDIA_CUDA-8.0_Samples/ $ sudo make all
可能报错:
$sudo apt-get install freeglut3 freeglut3-dev
http://blog.sina.com.cn/s/blog_9579544301014mt5.html (参考)
因为在usr/lib下有这个库文件,所以执行
$sudo ln -s libnvcuvid.so.1 libnvcuvid.so
参考http://blog.csdn.net/jiqiujia/article/details/19406609
执行了之后还是报错,又goole之后,执行
$sudo sed -i "s/nvidia-367/nvidia-375/g" $grep "nvidia-367" -r ./ -l,重新make
编译成功。
$cd bin/x86_64/linux/release/ $sudo ./deviceQuery
说明显卡驱动和cuda安装成功。
5.opencv安装
官网下载之后解压:
$ unzip opencv-3.2.0.zip $ cd opencv $ mkdir build $ cd build
安装一些依赖项:
$ sudo apt-get update $ sudo apt-get install build-essential $ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev $ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
$ sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
生成的文件在bulid中,而生成的CMakeList.txt文件在上一级文件中;
$cd ../ $vim CMakeLists.txt
在弹出的文件开头加入一行(注意里面的引号要英文状态下的):
set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -D_FORCE_INLINES”)
然后按esc和:wq保存退出。
编译安装:
$ cd build/ $ sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. $ sudo make all -j2
此步出现的问题:
/home/july/software/opencv-3.2.0/build/opencv_lapack.h:2:45:fatalerror:LAPACKE_H_PATH-NOTFOUND/lapacke.h: 没有那个文件或目录
解决方法:
sudo apt-get install liblapacke-dev checkinstall
$ sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. $ sudo make all -j2
以上只是将opencv编译成功,还没将opencv安装,需要运行下面指令进行安装:
$ sudo make install
6.python安装与配置
第一是直接安装anaconda,去官网下载 ,选择linux 64bit 2.7版本下载安装,anaconda安装方便但是需要在最后的make配置文件中更改python包含路径。
第二种方法就是使用原生的python2.7版本,终端下
$sudo apt-get install python-pip 安装pip
这里我们用pip安装一些python需要的依赖包,不过为了避免各种问题,也可以通过apt-get安装,反正我这两种方式都安装了一遍(-.-)
第一种:
选择的是anaconda linux64 2.7版本python2.7 。下载完成之后,最好也要进行md5sum的检验。
完成之后,cd进入下载文件所在的目录,在命令行输入:
bash Anaconda2-4.3.1-Linux-x86_64.sh
yes
(ENTER)
yes
这一选项把PATH=/home/mwp/anaconda2/bin加到了环境变量中。
添加库:
sudo gedit ~/.bashrc
添加
export LD_LIBRARY_PATH=/home/mwp/anaconda2/lib:$LD_LIBRARY_PATH
重启电脑之后,在命令行输入:
ipython
就可以看到Python的版本。
第二种:
使用原生的python2.7版本,终端下
sudo apt-get install python-pip #安装pip
这里我们用pip安装一些python需要的依赖包,不过为了避免各种问题,也可以通过apt-get安装,反正我这两种方式都安装了一遍(-.-)
$sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
以caffe默认解压到/home/mwp/ ,文件夹名caffe为例
$ cd /home/mwp/caffe/python $ sudo su $ for req in $(cat requirements.txt); do pip install $req; done
这里用pip安装可能速度很慢,很可能下载好几个小时,推荐用清华大学的pip源临时安装,所以命令改为如下:
$ for req in $(cat requirements.txt); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done
这里如果第一次有很多红字错误,建议再运行几遍指导安装成功,对于黄字提示无需理会,可能是pip版本需要更新。
安装了python还不行,还得安装一下ipython,后者更加方便快捷,更有自动补全功能。而ipython notebook是ipython的最好展现方式。最新的版本改名为jupyter notebook,我们先来安装一下。(如果安装了anaconda, jupyter notebook就已经自动装好,不需要再安装)
$sudo pip install jupyter(这里我已安装好,所有没有再次安装)
备注:
如果安装的是python3版本的anaconda,打开notebook时可能会出现类似”/lib/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found”的问题,命令行查找发现:
$ strings /home/mwp/anaconda3/lib/libstdc++.so.6 | grep GLIBCXX 显示如下: GLIBCXX_3.4 ...... GLIBCXX_3.4.19//未找到GLIBCXX_3.4.21
原因是anaconda3中自带的libgcc版本是libgcc 4.8.5-2,然而caffe中编译python需要更高的版本libgcc5.2.0。
解决办法:
$ conda install libgcc $ strings /home/mwp/anaconda3/lib/libstdc++.so.6 | grep GLIBCXX 就会显示如下: GLIBCXX_DEBUG_MESSAGE_LENGTH GLIBCXX_3.4 ...... GLIBCXX_3.4.19 GLIBCXX_3.4.20 GLIBCXX_3.4.21
这时就可以运行notebook
$ jupyter notebook
就会在浏览器中打开notebook, 点击右上角的New-python2, 就可以新建一个网页一样的文件,扩展名为ipynb。在这个网页上,我们就可以像在命令行下面一样运行python代码了。输入代码后,按shift+enter运行,更多的快捷键,可点击上方的help-Keyboard shortcuts查看,或者先按esc退出编辑状态,再按h键查看。
安装python3的其实和上面基本是一致的,只不过是把对应的版本号换掉即可,但是,在caffe的配置中真真差了很多事啊。因为我后来重新配置的python3的环境,心累。。。。。
7.caffe安装与配置
下载caffe:
$ cd ~ $ git clone https://github.com/BVLC/caffe.git //从github上git caffe
安装配置caffe:
$ cd caffe $ cp Makefile.config.example Makefile.config $ sudo gedit Makefile.config
配置文件修改(看英文提示根据具体修改):
OPENCV_VERSION := 3 #取消注释符号#,应用opencv3 注释第66行自带的python ANACONDA_HOME := /home/mwp/anaconda2 #将具体anaconda2路径写入 PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ $(ANACONDA_HOME)/include/python2.7 \ $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \ PYTHON_INCLUDE之前的注释#去掉,以及之后两行前的#也去掉 PYTHON_LIB := $(ANACONDA_HOME)/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
如果安装的是Anaconda3,则按照下面的方式:
OPENCV_VERSION := 3 #取消注释符号#,应用opencv3 注释第66行自带的python ANACONDA_HOME := /home/mwp/anaconda3 #将具体anaconda2路径写入 PYTHON_LIBRARIES := boost_python3 python3.5m 之前的注释去掉 PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ $(ANACONDA_HOME)/include/python3.5m \ $(ANACONDA_HOME)/lib/python3.5/site-packages/numpy/core/include \ PYTHON_INCLUDE 之前的注释#去掉,以及之后两行前的#也去掉 PYTHON_LIB := $(ANACONDA_HOME)/lib WITH_PYTHON_LAYER := 1之前的注释#去掉 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
为hdf5之类的文件创建新的链接
\首先执行下面两句话:
$ cd /usr/lib/x86_64-linux-gnu/ $ sudo find . -type f -exec sed -i -e 's^"hdf5/serial/hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5/serial/hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' \;
执行
ls -al | grep libhdf
然后根据情况执行下面两句:
$ sudo ln -s libhdf5_serial.so.10.1.0 libhdf5_.so $ sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
注意:这里的10.1.0和10.0.2根据不同的系统可能对应的数字会不同,比如在ubuntu16.04中其数字就是10.1.0.
具体的数字可以在输入命令时候使用tab键补全查看 .
打开makefile文件搜索并替换
NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) 为 NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) LIBRARIES +=glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 更改最后两项为: LIBRARIES +=glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
在命令行输入:
$ source ~/.bashrc #编译立即生效 $ sudo gedit ~/.bashrc
在打开的文件末尾加上:
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
在命令行输入:
$ sudo ldconfig #编译立即生效
然后进入caffe目录:
$sudo make all -j2编译成功。 $sudo make test -j2 $sudo make runtest
如果编译的是Anaconda3版本的,则可能出错:
CXX .build_release/src/caffe/proto/caffe.pb.cc PROTOC (python) src/caffe/proto/caffe.proto LD -o .build_release/lib/libcaffe.so.1.0.0-rc3 CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp /usr/bin/ld: cannot find -lboost_python3 collect2: error: ld returned 1 exit status make: *** [python/caffe/_caffe.so] 错误 1
因为在配置文件的第 74 行中有 PYTHON_LIBRARIES := boost_python3 ,但是在系统中无法找到 boost_python3.lib 这个库文件。
解决方案如下:
检查是否有如下文件:
ls /usr/lib/x86_64-linux-gnu/libboost_python-py35.so
如果有,说明我们的系统中已经有了这种库文件,只是文件名不同。
cd /usr/lib/x86_64-linux-gnu/ sudo ln -s libboost_python-py34.so libboost_python3.so
重新编译即可通过。
编译成功,界面显示如下:
在运用anaconda和matlab时都需要修改相应的内容。
anaconda需要将caffe头文件进行链接:
$ sudo gedit ~/.bashrc
输入
export PYTHONPATH=/home/mwp/caffe/python:$PYTHONPATH
保存后在命令行输入:
$sudo ldconfig $sudo make pycaffe
python也配置成功;
$sudo make distribute $ipython import caffe
报错如下:
命令操作如下:
A.把环境变量路径放到 ~/.bashrc文件中
$ sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrc
B.使环境变量生效
$ source ~/.bashrc
继续报错:
执行命令:
$ pip install opencv-python
执行conda install libgcc,报错:
我装的是anaconda2, 解决方法是在其中安装protobuf最新版本
$sudo chmod 777 -R anaconda2 $conda install protobuf
编译成功,即可调用caffe模块。
至此,caffe的安装结束,在整个过程中,重装系统n多次,都快郁闷死了,就是不断的查询不断的改,不断的make,成功的那一刻确实是很开心的。
相关文章推荐
- Ubuntu16.04+cuda8.0+caffe安装教程
- 写文章 Ubuntu16.04+cuda8.0+opencv3.1+anaconda2.7+caffe安装教程
- 超详细 Ubuntu / Ubuntu Kylin 16.04 + OpenCV 2.4 + CUDA 8.0 + cuDNN 5.0 + Caffe_SSD 安装教程
- Ubuntu 14.04 + Caffe + Cuda8.0 +Python2.7(GPU版)安装配置教程(傻瓜式)
- [置顶] Ubuntu16.04 安装cuda8.0+cudnn+anaconda2+opencv-3.1.0+caffe
- Ubuntu16.04+cuda8.0+caffe安装教程
- Ubuntu16.04+cuda8.0+caffe安装教程
- Ubuntu16.04+cuda8.0+opencv3.1+anaconda2.7+caffe安装教程
- Ubuntu16.04+cuda8.0+caffe安装教程
- Ubuntu16.04+cuda8.0+caffe安装教程
- Ubuntu16.04+cuda8.0安装教程
- Ubuntu 16.04 + cuda8.0 + opencv3 + caffe的安装,tensorflow-gpu的安装
- ubuntu16.04+cuda8.0+cudnn5.1+caffe------Opencv3.1.0安装
- 看这一篇就够了ubuntu16.04,cuda8.0,cudnnV5.1,python2.7,opencv3.3+contrib,caffe
- ubuntu14.04+cuda8.0+cudnn5.1+caffe+tensorflow 安装教程(三)
- Ubuntu16.04+CUDA8.0+cudnn7.5+Caffe安装过程
- Ubuntu16.04 + cuda8.0 + GTX1080 + matlab14.04a + Opencv3.0 + caffe 安装教程
- Ubuntu16.04 + cuda8.0 + GTX1080安装教程
- CUDA8.0+Ubuntu14.04+Caffe安装过程之CUDA安装教程
- caffe--ubuntu16.04+cuda8.0+opencv3.0+python2.7(Anaconda)+matlab(台式机,独显为GTXNVIDIA1060)AN3.4.