一共3篇文章:
************************************************************************************************************************************
第一篇GTX960ubuntu16.04、cuda8.0caffe tensorflow theano
转自:http://blog.csdn.net/hjimce/article/details/51999566
第二篇GTX1080 ubuntu14.04 cuda 8.0 caffe tensorflowtheano
转自:http://blog.csdn.net/u010900574/article/details/52201808
第三篇ubuntu16.04+cuda8.0+caffe+python+matlab+opencv3.0
转自:http://blog.csdn.net/zhongshijunacm/article/details/52824894
************************************************************************************************************************************
目前自己撘过深度学习各种库、各种环境,已经搭建了n多台电脑,发现每台电脑配置安装方法各不相同,总会出现各不相同的错误,真是心塞。笔记本和台式机有差别,台式机之间的安装方法又各不相同,不同的系统版本环境、平台又各有差异。比如昨天搞的一台电脑,可能因为显卡比较新,然而ubuntu14.04、ubuntu15.04都比较旧,连安装系统都装不上,一开始在14.04上重装了n多次系统,还以为是自己电脑的问题。最后在ubuntu16.04竟然非常顺利完成了安装;然而16.04的版本,只有cuda8.0才支持,在这台破电脑上,又折腾了我快一天的时间。
显卡:GTX960
环境:ubuntu16.04、cuda8.0
下面是我的安装之路,总的来说theano、keras、tensorflow都比较容易安装;最难安装的是caffe,因为caffe调用的第三方库比较杂、比较多。
一、安装cuda8.0
1、输入命令:
- sudovim/etc/modprobe.d/blacklist.conf
- blacklistnouveau
- sudoreboot
- sudoapt-getremove--purgenvidia*
重启,然后进入终端:
- sudoservicelightdmstop
- chmod+xcuda*.run
- sudo./cuda*.run
2、安装cuda的过程中,一直跳出错误:
- Ifyou'resurethatXisnotrunning,butaregettingthiserror,pleasedeleteanyXlockfilesin/tmp.
- sudorm/tmp/.X0-lock
3、ubuntu的gcc编译器是5.4.0,然而cuda8.0不支持5.0以上的编译器,因此需要降级,把编译器版本降到4.9:
- sudoapt-getinstallg++-4.9
- sudoupdate-alternatives--install/usr/bin/gccgcc/usr/bin/gcc-4.920
- sudoupdate-alternatives--install/usr/bin/gccgcc/usr/bin/gcc-510
- sudoupdate-alternatives--install/usr/bin/g++g++/usr/bin/g++-4.920
- sudoupdate-alternatives--install/usr/bin/g++g++/usr/bin/g++-510
- sudoupdate-alternatives--install/usr/bin/cccc/usr/bin/gcc30
- sudoupdate-alternatives--setcc/usr/bin/gcc
- sudoupdate-alternatives--install/usr/bin/c++c++/usr/bin/g++30
- sudoupdate-alternatives--setc++/usr/bin/g++
等待安装完成
4、配置环境变量:
- sudovim/etc/profile
- PATH=/usr/local/cuda/bin:$PATH
- exportPATH
保存退出。输入命令:
- source/etc/profile
使其生效。
输入命令:
- sudo/etc/ld.so.conf.d/cuda.conf
添加内容:
- /usr/local/cuda/lib64
5、验证测试
测试cuda是否安装成功:
- cd/usr/local/cuda/samples
编译例子:
- sudomakeall-j8
- ./deviceQuery
二、安装theano
1、直接输入命令:
- sudopipinstalltheano
2、配置参数文件:.theanorc
- [global]
- floatX=float32
- device=gpu
- base_compiledir=~/external/.theano/
- allow_gc=False
- warn_float64=warn
- [mode]=FAST_RUN
- [nvcc]
- fastmath=True
- [cuda]
- root=/usr/local/cuda
3、运行测试例子:
- fromtheanoimportfunction,config,shared,sandBox
- importtheano.tensorasT
- importnumpy
- importtime
- vlen=10*30*768#10x#coresx#threadspercore
- iters=1000
- rng=numpy.random.RandomState(22)
- x=shared(numpy.asarray(rng.rand(vlen),config.floatX))
- f=function([],T.exp(x))
- print(f.maker.fgraph.toposort())
- t0=time.time()
- foriinrange(iters):
- r=f()
- t1=time.time()
- print("Looping%dtimestook%fseconds"%(iters,t1-t0))
- print("Resultis%s"%(r,))
- ifnumpy.any([isinstance(x.op,T.Elemwise)forxinf.maker.fgraph.toposort()]):
- print('Usedthecpu')
- else:
- print('Usedthegpu')
可以看到结果:
- /usr/bin/python2.7/home/hjimce/PycharmProjects/untitled/.idea/temp.py
- Usinggpudevice0:GeForceGTX960(CNMeMisdisabled,cuDNNnotavailable)
- [GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32,vector)>),HostFromGpu(GpuElemwise{exp,no_inplace}.0)]
- Looping1000timestook0.302778seconds
- Resultis[1.231780291.618793491.52278066...,2.207718132.29967761
- 1.62323296]
- Usedthegpu
三、caffe环境搭建
1、切换编译器:
- sudoupdate-alternatives--configg++
- sudoupdate-alternatives--configgcc
输入命令:
- cd/usr/lib/x86_64-linux-gnu
- sudoln-slibhdf5_serial.so.10.1.0libhdf5.so
- sudoln-slibhdf5_serial_hl.so.10.0.2libhdf5_hl.so
3、caffe编译
从github上下载caffe,解压打开makefile.config对其进行修改,makefile.config修改内容内容如下:
将
- 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
4、cuda8.0编译器问题
打开/usr/local/cuda/include/host_config.h
注释掉:
- error--unsupportedGNUversion!gccversionslaterthan5.3arenotsupported!
结果如下:
- #if__GNUC__>5||(__GNUC__==5&&__GNUC_MINOR__>3)
- //#error--unsupportedGNUversion!gccversionslaterthan5.3arenotsupported!
- #endif/*__GNUC__>5||(__GNUC__==5&&__GNUC_MINOR__>1)*/
- build_release/lib/libcaffe.so:undefinedreferenceto'google::protobuf::io::CodedOutputStream::WriteVarint64ToArray(unsignedlonglong,unsignedchar*)'
(1)于是先卸载原有版本:
- sudoapt-getautoremovelibprotobuf-devprotobuf-compiler
(3)打开protobuf文件目录进行编译安装,具体过程如下
编译过程过下:
A、输入命令:
- shauto*.sh
- configure.ac:64:error:possiblyundefinedmacro:AC_PROG_LIBTOOL
那么输入命令:
sudo apt-get install autoconf autogen
- sudoapt-getinstalllibtool
然后在次运行:
- shauto*.sh
B、按照顺序,依次输入如下命令:
- ./configure
- make-j8
- makecheck
- makeinstall
完成安装。
C、protobuf配置环境变量.
打开profile文件:
- sudovim/etc/profile
添加:
- exportPATH=$PATH:/usr/local/protobuf/bin/
- exportPKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/<
- source/etc/profile
D、配置动态链接库
打开配置文件ld.so.conf:
- sudovim/etc/ld.so.conf
- /usr/local/protobuf/lib
- sudosu
- ldconfig
- makeall-j8
- makepycaffe
OK,万事大吉,打完收工。
相关参考文献:
http://blog.csdn.NET/realxie/article/details/7456013
https://github.com/BVLC/caffe/wiki/GeForce-GTX-1080,---CUDA-8.0,---Ubuntu-16.04,---Caffe
https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-Installation-Guide
http://mooon.blog.51cto.com/1246491/909928
四、tensorflow
以前的安装方法:
- sudoapt-getinstallpython-pippython-dev
- exportTF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl
- sudopipinstall--upgrade$TF_BINARY_URL
- libcudart.so.7.5:cannotopensharedobjectfile:Nosuchfileordirectory
主要原因是上面的tensoftlow*.whl是cuda7.5编译好的,导致我们不能直接用。因此我们接着要自己编译才行。
现在的方法:参考https://www.tensorflow.org/versions/r0.12/get_started/os_setup.html#pip-installation
sudo apt-get install python-pip python-dev sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.0rc0-cp27-none-linux_x86_64.whl
以下是通过源码安装:
1、先装jdk
- sudoapt-getupdate
- sudoapt-getinstalldefault-jre
- sudoapt-getinstalldefault-jdk
- echo"deb[arch=amd64]http://storage.googleapis.com/bazel-aptstablejdk1.8"|sudotee/etc/apt/sources.list.d/bazel.list
- curlhttps://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg|sudoapt-keyadd-
- sudoapt-getupdate&&sudoapt-getinstallbazel
3、下载tensorflow并编译
- ./configure
- Can'tfindswig.Ensureswigisin$PATHorset$SWIG_PATH.
- sudoapt-getinstallswig
- PleasespecifythelocationwherecuDNNlibraryisinstalled.RefertoREADME.mdformoredetails.[Defaultis/usr/local/cuda]:
- InvalidpathtocuDNNtoolkit.Neitherofthefollowingtwofilescanbefound:
- /usr/local/cuda-8.0/lib64/libcudnn.so
- /usr/local/cuda-8.0/libcudnn.so
所以没办法,只能把cudnn也给安装了。首先到官网下载cuda8.0对应的cudnn:
- cudnn-8.0-linux-x64-v5.0-ga.tgz
- tar-zxvfcudnn-8.0-linux-x64-v5.0-ga.tgz
- sudocpcuda/include/cudnn.h/usr/local/cuda/include/
- sudocpcuda/lib64/libcudnn*/usr/local/cuda/lib64/
- sudochmoda+r/usr/local/cuda/include/cudnn.h
- sudochmoda+r/usr/local/cuda/lib64/libcudnn*
5、输入.configure,然后一路回车、或者选择yes。
6、这是心酸,原来tensorflow官网给了从源码安装的教程:install from sources
- https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html
参考文献:
http://textminingonline.com/dive-into-tensorflow-part-iii-gtx-1080-ubuntu16-04-cuda8-0-cudnn5-0-tensorflow
**********************作者微博:黄锦池-hjimce博客:http://blog.csdn.net/hjimce 原创文章,转载请保留本行信息********************
================================================================================================================================================================================================================================================================================================================================================
GTX1080因为其高性价比,被许多人买来用于进行并行计算用。tensorflow是当今最流行的深度学习库之一。很多人希望使用基于GPU计算的tensorflow来进行研究。tensorflow使用pip在线安装是非常方便的,可它偏偏不支持cuda8,仅支持cuda7.5.因此只能使用源码安装tensorflow.
下面是安装过程
1. ubuntu14.04安装与GTX1080图形加速驱动安装
这个不介绍,网上如何安装windows+ubuntu双系统一大堆,我是使用ultraISO刻录的ubuntu系统进行安装的。
在英伟达官网下载好对应你系统的.run格式的图形驱动后,同时按ctrl+alt+f1进入tty1模式,使用sudo service lightdm stop
命令来停止x windows界面,否则安装的过程中会提示x windows在运行,终止显卡驱动安装,后面就是各种下一步了。注意后面会提示是否自动更新显示配置文件,要选择是,这样比较方便,不用手动配置了
2. cuda8.0 安装
因为GTX1080是pascal架构,不同于之前的maxwell架构. 最新的cuda8支持GTX1080,而cuda7.5不支持最新的GTX080. 英伟达需要登陆才可以下载,所以需要注册账号并填写类似问卷调查的东西才可以,不过问卷调查可以瞎胡写。
2.1 cuda8下载
cuda8下载地址: 为https://developer.nvidia.com/cuda-release-candidate-download
下载页面如图所示,选择Linux对应版本,可以选择.run文件,也可以选择.deb文件,这个不影响
2.2 cuda8.0安装
下载完成之后,入下载文件目录,执行
sudo sh cuda_8.0.27_linux.run
注意这里的版本号可能与你下载的有差别
然后就是各种下一步了,第一步让选择是否安装英伟达图形驱动,如果已经安装了就选择no,我是单独安装的。我也试过在新系统下让他在这一步安装图形驱动,可是有错误,我也不知道为啥,若有人知道,望告知。这一步选择不安装显卡驱动,是没问题的。
cuda安装过程中会让你选择是否创建/usr/local/cuda-8.0到/usr/local/cuda的符号链接,这一步最好选择是,如果切换版本,很方便。
3 cudnn5.1安装
3.1 cudnn下载
在英伟达cudnn界面下载cudnn5.1,这里也需要进行一个调查问卷,就三个选择题。
3.2 cudnn安装
具体的cudnn安装如下,其实都不能算是安装,就是把文件拷贝到cuda目录,改变一下权限。
tar xvzf cudnn-7.5-linux-x64-v4.tgz #这里要注意你下载的版本,需要解压你下载的对应版本的文件
#解压后的文件夹名字是cuda
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
4. tensorflow安装
完整的tensorflow源码安装可以选择参考tensorflow官方安装文档中的安装教程,写的很详细!
4.1 tensorflow下载
从tensorflow的github仓库下载代码
$ Git clone https://github.com/tensorflow/tensorflow
4.2 bazel安装
bazel是谷歌的代码编译工具,类似make,官方安装教程在这里。
其最简单的安装步骤如下:
- 安装jdk8, 这个不多说了,应该都会
- 添加bazel的源
$ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list #如果这里你用的是jdk7,要把jdk1.8替换为jdk1.7
$ curl https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg | sudo apt-key add -
- 安装bazel
$ sudo apt-get update && sudo apt-get install bazel
到这里就结束了,你可以在终端输入bazel看是否安装上了。如果不行,你可以试一下官网提供的另外一种方法,下载bazel的安装文件,也超级简单。
4.3 下载其他依赖文件
# For Python 2.7:
$ sudo apt-get install python-numpy swig python-dev python-wheel
# For Python 3.x:
$ sudo apt-get install python3-numpy swig python3-dev python3-wheel
4.4 编译tensorflow
4.4.1配置
因为我使用是anaconda,Python解释器也是用的anaconda里面自带的,使用起来比较方便。
进入tensorflow根目录
$ ./configure
Please specify the location of python. [Default is /usr/bin/python]:
Do you wish to build TensorFlow with Google Cloud Platform support? [y/N] N
No Google Cloud Platform support will be enabled for TensorFlow
Do you wish to build TensorFlow with GPU support? [y/N] y
GPU support will be enabled for TensorFlow
Please specify which gcc nvcc should use as the host compiler. [Default is /usr/bin/gcc]:
Please specify the Cuda SDK version you want to use,e.g. 7.0. [Leave empty to use system default]: 7.5
Please specify the location where CUDA 7.5 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
Please specify the cuDNN version you want to use. [Leave empty to use system default]: 5
Please specify the location where cuDNN 5 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
Please specify a list of comma-separated Cuda compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus.
Please note that each additional compute capability significantly increases your build time and binary size.
Setting up Cuda include
Setting up Cuda lib
Setting up Cuda bin
Setting up Cuda nvvm
Setting up CUPTI include
Setting up CUPTI lib64
Configuration finished
4.4.2 配置GPU支持,这一步耗费时间比较长
$ bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer
$ bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu
# Lots of output. This tutorial iteratively calculates the major eigenvalue of
# a 2x2 matrix,on GPU. The last few lines look like this.
000009/000005 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]
000006/000001 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]
000009/000009 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]
如果没有错误,执行下一步4.4.3,如果这一步出现依赖错误,如下所示
bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer
ERROR: /home/yaroslavvb/tensorflow.git/tensorflow/tensorflow/core/kernels/BUILD:1080:1: undeclared inclusion(s) in rule '//tensorflow/core/kernels:cwise_op_gpu':
this rule is missing dependency declarations for the following files included by 'tensorflow/core/kernels/cwise_op_gpu_floor.cu.cc':
'/usr/local/cuda-8.0/include/cuda_runtime.h'
'/usr/local/cuda-8.0/include/host_config.h'
'/usr/local/cuda-8.0/include/builtin_types.h'
'/usr/local/cuda-8.0/include/device_types.h'
'/usr/local/cuda-8.0/include/host_defines.h'
'/usr/local/cuda-8.0/include/driver_types.h'
'/usr/local/cuda-8.0/include/surface_types.h'
'/usr/local/cuda-8.0/include/texture_types.h'
可以进入tensorflow/third_party/gpus/crosstool/目录,打开CROSSTOOL文件,搜索cxx_builtin_include_directory,应该有三行,在下面添加行如下
cxx_builtin_include_directory: "/usr/local/cuda-8.0/include"
再次运行上一步的命令,应该就没问题了。
4.4.4 创建pip包并安装它
$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
# To build with GPU support:
$ bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
#The name of the .whl file will depend on your platform.
#这一步之前,你要进入/te//tensorflow_pkg目录查看具体生成的whl文件的名称,这不是固定的
$ sudo pip install /tmp/tensorflow_pkg/tensorflow-0.10.0rc0-py2-none-any.whl
如果你希望安装到anaconda里面,在最后一步要使用anaconda自带的pip,而不是系统的pip,你使用sudo pip
那一般就是用的系统自带的pip
你可以进入anaconda目录,一般在主目录下,进入bin目录,执行
./pip install /tmp/tensorflow_pkg/tensorflow-0.10.0rc0-py2-none-any.whl
至此,tensorflow应该就能使用了。
4.4.5(可选)设置tensorflow开发者功能
为了方面开发tensorflow的工作人员,可以在交互式命令中测试tensorflow,而不必重新安装它,可以执行一下步骤
bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
# To build with GPU support:
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
mkdir _python_build
cd _python_build
ln -s ../bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/org_tensorflow/* .
ln -s ../tensorflow/tools/pip_package/* .
python setup.py develop
5. 使用
打开python,import tensorflow,应该就可以工作了
参考文献:
tensorflow相关参考文献:
https://www.tensorflow.org/versions/r0.12/get_started/os_setup.html#pip-installation
https://www.tensorflow.org/versions/r0.12/get_started/os_setup.html#installing-from-sources
https://bazel.build/versions/master/docs/install.html
http://blog.csdn.net/hjimce/article/details/51999566
================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
文章参考来之:http://blog.csdn.NET/autocyz/article/details/52299889
本文只是为了本人自己下次安装有的参考,所做的记录。所以,大部分内容来自上面的参考博客(这只是个人为了下次方便,由于设计版权问题,所以建议大家还是去回原作者那里阅读。如果,遇到什么问题可以在借鉴本博客的方法!)。在结合自己机子遇到的情况加以修改!
1、安装nvidia驱动
首先去官网上查看适合你GPU的驱动( http://www.nvidia.com/Download/index.aspx?lang=en-us)例如,本人的GPU适合的驱动如图:
执行如下语句:
- sudoadd-apt-repositoryppa:graphics-drivers/ppa
- sudoapt-getupdate
- sudoapt-getinstallnvidia-367
- sudoapt-getinstallmesa-common-dev
- sudoapt-getinstallfreeglut3-dev
原文是用下载文件安装的。但是这样可能会出现进不了图形化界面!所以,我选择了用ubuntu16.04图形化下自带的nvidia-367驱动。
操作如下:
system settings--->system下:Software&Updates--->更改下载源(下载软件加速效果)Download from: 改为aliyun--->Additional Drivers(从上面的查看中适合自己的版本,选择nvidia版本越高越好!)
执行完上述后,重启(reboot)。
重启后输入:
- nvidia-smi
如果出现了你的GPU列表,则说明驱动安装成功了。另外也可以通过
- nvidia-settings
查看自己机器上详细的GPU信息,本人机器的信息如下:
2、安装CUDAcuda是nvidia的编程语言平台,想使用GPU就必须要使用cuda
从这里下载cuda的安装文件
https://developer.nvidia.com/cuda-release-candidate-download
我下载的是deb文件。
- sudodpkg-ixxxxxx.deb(下载的文件名)
- sudoapt-getupdate
- sudoapt-getinstallcuda
这里是nvidia给出的官方安装指南(遇到问题时可以查阅):
http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#axzz4HIBXnwyt
- 安装完成后写入路径:
- sudogedit/etc/profile
- #最后添加
- exportPATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
- exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- source/etc/profile
3、测试cuda的Samples
- cd/usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
- make
- sudo./deviceQuery
如果显示的是一些关于GPU的信息,则说明安装成功了。(最后显示是PASS不是Faile!)
4、使用cudnn
首先去官网下载你需要的cudnn,下载的时候需要注册账号。选择对应你cuda版本的cudnn下载。这里我下载的是cudnn5.1,是个压缩文件(.tgz)下载完cudnn5.0之后进行解压,cd进入cudnn5.1解压之后的include目录,在命令行进行如下操作
- sudocpcudnn.h/usr/local/cuda/include/#复制头文件
再将cd进入lib64目录下的动态文件进行复制和链接
5、matlab的安装与配置
在网盘上下载安装包 http://pan.baidu.com/s/1nuKJc9N。里面有一个crack文件夹,用于破解;MATHWORKS_R2014A.iso用于安装。(最好用百度的专门下载软件!)- 1、挂载iso(需新建matlab_iso文件夹):
- sudomount-oloopMATHWORKS_R2014A.iso~/matlab_is
- 2、开始安装:
- cd~/matlab_iso
- sudo./install
- 3、选择不联网安装
- 4、密钥随便输入,比如12345-67890-12345-67890
- 5、激活:选择”license_405329_R2014a.lic”文件进行激活(在Crack文件夹下面)
- 6、将libmwservices.so复制到/usr/local/MATLAB/R2014a/bin/glnxa64中:
- sudocplibmwservices.so/usr/local/MATLAB/R2014a/bin/glnxa64/libmwservices.so
6、安装opencv3.1.0
从官网上下载opencv3.1.0http://opencv.org/downloads.html
并将其解压到你要安装的位置,假设解压到了/home
首先安装Ubuntu系统需要的依赖项,虽然我也不知道有些依赖项是干啥的,但是只管装就行,也不会占据很多空间的。
原文的在安装Python的依赖放在了caffe依赖中安装。但是,我自己在亲自实验后发现。make后会出现找不到python依赖。所以,建议python依赖放在这里先安装。反正早晚都是要装的。
- sudoapt-getupdate
- sudoapt-getinstall-ybuild-essentialcmakegitpkg-config
- sudoapt-getinstall-ylibprotobuf-devlibleveldb-devlibsnappy-devlibhdf5-serial-devprotobuf-compiler
- sudoapt-getinstall-ylibatlas-base-dev
- sudoapt-getinstall-y--no-install-recommendslibboost-all-dev
- sudoapt-getinstall-ylibgflags-devlibgoogle-glog-devliblmdb-dev
- sudoapt-getinstall-ypython-pip
- sudoapt-getinstall-ypython-dev
- sudoapt-getinstall-ypython-numpypython-scipy
如果,还有什么错误提示依赖关于依赖问题的可以自己上网找一些相关的安装,之后make clean然后重新make 就好了。
- sudoapt-getinstall--assume-yeslibopencv-devbuild-essentialcmakegitlibgtk2.0-devpkg-configpython-devpython-numpylibdc1394-22libdc1394-22-devlibjpeg-devlibpng12-devlibtiff5-devlibjasper-devlibavcodec-devlibavformat-devlibswscale-devlibxine2-devlibgstreamer0.10-devlibgstreamer-plugins-base0.10-devlibv4l-devlibtbb-devlibqt4-devlibfaac-devlibmp3lame-devlibopencore-amrnb-devlibopencore-amrwb-devlibtheora-devlibvorbis-devlibxvidcore-devx264v4l-utilsunzip
然后安装OpenCV需要的一些依赖项,一些文件编码解码之类的东东。
- sudoapt-getinstallbuild-essentialcmakegit
- sudoapt-getinstallffmpeglibopencv-devlibgtk-3-devpython-numpypython3-numpylibdc1394-22libdc1394-22-devlibjpeg-devlibpng12-devlibtiff5-devlibjasper-devlibavcodec-devlibavformat-devlibswscale-devlibxine2-devlibgstreamer1.0-devlibgstreamer-plugins-base1.0-devlibv4l-devlibtbb-devqtbase5-devlibfaac-devlibmp3lame-devlibopencore-amrnb-devlibopencore-amrwb-devlibtheora-devlibvorbis-devlibxvidcore-devx264v4l-utilsunzip
在终端中cd到opencv文件夹下,然后
cmake成功后,会出现如下结果,提示配置和生成成功:
- --Configuringdone
- --Generatingdone
- --Buildfileshavebeenwrittento:/home/ise/software/opencv-3.1.0/build
然后make编译就可以了
- make-j8
这个过程中可能会提示摸个***.h文件找不到。建议直接手动放到编译错误提示的目录下就好了。然后,make clean 重新make。
上面是将OpenCV编译成功,但是并没有安装到我们的系统中,有很多的设置都没有写入到系统中,因此还要进行install。
- sudomakeinstall
- sudo/bin/bash-c'echo"/usr/local/lib">/etc/ld.so.conf.d/opencv.conf'
- sudoldconfig
重启系统,重启系统后cd到build文件夹下:
- sudoapt-getinstallcheckinstall
- sudocheckinstall
然后按照提示安装就可以了。
使用checkinstall的目的是为了更好的管理我安装的opencv,因为opencv的安装很麻烦,卸载更麻烦,其安装的时候修改了一大堆的文件,当我想使用别的版本的opencv时,将当前版本的opencv卸载就是一件头疼的事情,因此需要使用checkinstall来管理我的安装。
执行了checkinstall后,会在build文件下生成一个以backup开头的.tgz的备份文件和一个以build开头的.deb安装文件,当你想卸载当前的opencv时,直接执行dpkg -r build
即可。
7、安装caffe
首先安装各种依赖包
- sudoapt-getupdate
- sudoapt-getinstall-ybuild-essentialcmakegitpkg-config
- sudoapt-getinstall-ylibprotobuf-devlibleveldb-devlibsnappy-devlibhdf5-serial-devprotobuf-compiler
- sudoapt-getinstall-ylibatlas-base-dev
- sudoapt-getinstall-y--no-install-recommendslibboost-all-dev
- sudoapt-getinstall-ylibgflags-devlibgoogle-glog-devliblmdb-dev
- sudoapt-getinstall-ypython-pip
- sudoapt-getinstall-ypython-dev
- sudoapt-getinstall-ypython-numpypython-scipy
将终端cd到你要安装caffe的位置,执行如下指令,从github上clone caffe。
- gitclonehttps://github.com/BVLC/caffe.git//从github上gitcaffe
- cdcaffe//打开到刚刚git下来的caffe
- sudocpMakefile.config.exampleMakefile.config//将Makefile.config.example的内容复制到Makefile.config
- //因为make指令只能makeMakefile.config文件,而Makefile.config.example是caffe给出的makefile例子
- sudogeditMakefile.config//打开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
- //重要的一项将#Whateverelseyoufindyouneedgoeshere.下面的INCLUDE_DIRS:=$(PYTHON_INCLUDE)/usr/local/includeLIBRARY_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的位置,所以需要更改这一路径
- //若使用MATLAB接口的话,则要讲MATLAB_DIR换成你自己的MATLAB安装路径
- MATLAB_DIR:=/usr/local
- MATLAB_DIR:=/usr/local/matlab2014a
打开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,将其中的第115行注释掉:
将
- #error--unsupportedGNUversion!gccversionslaterthan4.9arenotsupported!
- 改为
- //#error--unsupportedGNUversion!gccversionslaterthan4.9arenotsupported!
最后在:
- makeall-j8
- makeruntest-j8
- makepycaffe-j8
- makematcaffe-j8
测试是否pycaffe成功:
caffe目录下:
终端输入:python
import sys
caffe_root = 'home/username/caffe/' (安装caffe的路径)
sys.path.insert(0,caffe_root + 'python')
import caffe
如果没错误就说明成功了。