Reference:
CPU:
/watch?v=DnIs4DRjNL4
GPU:
Part1:
/watch?v=ytyU9NLkHl0
Part2:
/watch?v=DkyxN4ANddA
gpu Installation details:
/adeelz92/Install-Caffe-on-Ubuntu-16.04-Python-3
CUDA:
/cuda/cuda-installation-guide-linux/#axzz4VZnqTJ2A
cuDNN:
/deeplearning/sdk/cudnn-install/index.html
1、官网永远是最棒的教程,谨记! 2、分CPU版和GPU版,建议先掌握CPU版 3、不要妄想,刚开始学习安装,就能一次装好 4、不同机器会出现不同的问题,请及时Google 5、不要进入管理员模式 6、里面的路径,不要简单的复制粘贴,要根据自己的目录修改下
Prerequisites:
sudo apt-get updatesudo apt-get upgradesudo apt-get install vim make cmake
cpu版:
1.打开caffe官网:搜索引擎直接搜索caffe,进入到安装ubuntu教程界面
ubuntu终端中,输入下图的安装命令:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilersudo apt-get install --no-install-recommends libboost-all-devsudo apt-get install libatlas-base-devsudo apt-get install python-dev python-pip build-essentialsudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
再打开另一个网页,caffe的github界面:/BVLC/caffe
ubuntu终端中输入:
sudo apt-get install git # 如果没有git工具的话cd ~ # 进入到根目录git clone /BVLC/caffe.git
2.进入编译界面:
往下滚动:
直到看见python
ubuntu终端中输入上面的命令:
cd caffe # 进入caffe文件夹find -name requirement.txt #将得到
cd pythonfor req in $(cat requirements.txt); do pip install $req; done
这里如果出现pip版本低的提示,不用理会。如果出现了什么错误,自行搜索解决(一般不会出错)
cp Makefile.config.example Makefile.configvim Makefile.config
set nu #显示行号
修改1:(第8行)
CPU_ONLY := 1
修改2:(第23行)
OPENCV_VERSION := 2 # 如果你不知道自己的opencv的版本的话,使用如下方法查看
python>>> import cv2>>> cv2.__version__
修改3:(第27行)
CUSTOM_CXX := g++
修改4:(第53行)
如果安装了OpenBLAS,则修改
BLAS := open
如果安装了Atlas,则修改 (上述我们安装的就是Atlas)
BLAS := allas
修改5:(第71行)
PYTHON_INCLUDE := /usr/include/python2.7 \ # 不用修改这一行,改的是下一行
/usr/lib/python2.7/dist-packages/numpy/core/include 改为
这里需要保存,并退出Makefile.config文件,需要查看python的地址
python -m site
会出现
:
就是上图USER_SITE:后面的
再查找一下numpy具体的位置:
cd /home/zdx/.local/lib/python2.7find -name numpy
进行修改:
PYTHON_INCLUDE := /usr/include/python2.7 \/home/zdx/.local/lib/python2.7/site-packages/numpy/core/include #修改后应该是这样的
修改6:(第94行)
WITH_PYTHON_lAYER := 1
修改7:(第97行)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include 改为
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
修改8:(第98行)
这里需要保存,并退出Makefile.config文件,需要查看hdf5的地址
cd /usr/libfind -name hdf5
搜索的到的路径,应像左边这样:/usr/lib/x86_64-linux-gnu/hdf5
回到caffe文件夹
vim Makefile.config
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib 改为
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib/x86_64-linux-gnu/hdf5/serial # 也就是刚才得到的路径再加上/serial
到这里,就配置结束了。下面进行编译,有两种方法:
回到caffe文件夹
方法一(make):
make allmake runtest
方法二(cmake):
mkdir build && cd buildcmake ..make all -j16make installmake runtest
没问题后,进入下面
pip install pydotsudo apt-get install graphvizsudo apt-get install python-matplotlib python-numpy python-pil python-scipysudo apt-get install build-essential cythonsudo apt-get install python-skimagemake pycaffemake pytestsudo vim ~/.bashrc
在最后面加上
export PYTHONPATH=/home/zdx/caffe/python:$PYTHONPATH #你caffe中的python路径
保存退出
source ~/.bashrc
python>>> import caffe>>>
成功!
GPU版:(未完成)
1、安装NVIDIA驱动
1.1 禁用nouveau
sudo vim /etc/modprobe.d/blacklist.conf
在最后另起一行添加如下
blacklist vga16fbblacklist nouveaublacklist rivafbblacklist rivatvblacklist nvidiafb
进行更新保存
sudo update-initramfs -u
接下来关机重启之后,在终端输入
lsmod | grep nouveau
若没有输出,则证明关闭nouveau成功!
1.2 PPA安装NVIDIA驱动
添加Graphic Drivers PPA
sudo add-apt-repository ppa:graphics-drivers/ppasudo apt-get update
查找合适的版本
ubuntu-drivers devices
其中一个driver后面加上了recommend字样,记住该版本,这个版本就是你要安装的NVIDIA驱动版本
确定版本之后,接下来就进入到正式安装了!!!
设置完成后,按Ctrl+Alt+F1进入终端模式
输入你的账号密码后,获取你的root权限,输入su,之后输入你设置的root密码后,即获得root权限
接着,输入以下命令关闭图形界面
sudo service lightdm stop
安装driver,后面的数字修改为相应的版本号。
sudo apt-get install nvidia-418
等待一段时间之后(需要一会儿),之后直接重启
sudo reboot
验证是否成功
sudo nvidia-smi
看一下processes里面是不是有内容。
2.安装CUDA10
2.1 官网下载run文件:
执行下面的命令,会有一系列提示让你确认,但是注意,在accept之后,第二步就是问你是否安装nvidia驱动,这个时候输入n。
剩下的选择则都输入“y”确认安装或确认默认路径安装,开始安装,安装完成后最好还是重启一下,输入命令。
sudo chmod 777 cuda_10.0.130_410.48_linux.runsudo sh cuda_10.0.130_410.48_linux.run --no-opengl-libsreboot
重新登陆后,打开终端,配置cuda环境变量,打开~/.bashrc文件
sudo vim ~/.bashrc
添加的路径,要根据你的实际安装路径填写,去local文件夹下看看的你的cuda文件名
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
测试cuda是否安装正确
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery sudo make sudo ./deviceQuery
若显示类似这样的内容,则证明你的cuda安装成功了!!
./deviceQuery Starting...CUDA Device Query (Runtime API) version (CUDART static linking)Detected 1 CUDA Capable device(s)Device 0: "GeForce GT 740M"CUDA Driver Version / Runtime Version8.0 / 8.0CUDA Capability Major/Minor version number: 3.5Total amount of global memory: MBytes (2100953088 bytes)( 2) Multiprocessors, (192) CUDA Cores/MP:384 CUDA CoresGPU Max Clock rate: 1032 MHz (1.03 GHz)Memory Clock rate: 800 MhzMemory Bus Width:64-bitL2 Cache Size: 524288 bytesMaximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layersMaximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layersTotal amount of constant memory:65536 bytesTotal amount of shared memory per block: 49152 bytesTotal number of registers available per block: 65536Warp size: 32Maximum number of threads per multiprocessor: 2048Maximum number of threads per block: 1024Max dimension size of a thread block (x,y,z): (1024, 1024, 64)Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)Maximum memory pitch:2147483647 bytesTexture alignment: 512 bytesConcurrent copy and kernel execution:Yes with 1 copy engine(s)Run time limit on kernels: NoIntegrated GPU sharing Host Memory: NoSupport host page-locked memory mapping: YesAlignment requirement for Surfaces: YesDevice has ECC support: DisabledDevice supports Unified Addressing (UVA):YesDevice PCI Domain ID / Bus ID / location ID: 0 / 1 / 0Compute Mode:< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GT 740MResult = PASS
3.安装cudnn
cudnn需要去官网下载,而去官网下载还需要注册,很麻烦,我就把我的百度云链接发出来,供大家下载
链接:/s/1O7vvWEAvAHbHVCQOboav5A 密码:f20o
解压之后,你会在跟目录下看见cuda文件夹,在终端执行命令
请到自己解压后的lib64文件夹看一看,libcudnn.so 后面跟的是什么
进入到lib64可以输入:locate libcudnn.socd cuda; sudo cp lib64/lib* /usr/local/cuda/lib64/; sudo cp include/cudnn.h /usr/local/cuda/include/ cd /usr/local/cuda/lib64/sudo chmod +r libcudnn.so.5.1.10sudo ln -sf libcudnn.so.5.1.10 libcudnn.so.5sudo ln -sf libcudnn.so.5 libcudnn.sosudo ldconfig
安装完成后可用 nvcc -V 命令验证是否安装成功,若出现以下信息则表示安装成功:
nvcc: NVIDIA (R) Cuda compiler driverCopyright (c) - NVIDIA CorporationBuilt on Sat_Aug_25_21:08:01_CDT_Cuda compilation tools, release 10.0, V10.0.130
4.安装opencv3.4
进入官网选择对应版本的source下载:/releases.html
安装opencv需要的一些库,这个是都需要安装的,能安装的尽量都安装上
sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devsudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-devsudo apt-get install --assume-yes libopencv-dev libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzipsudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev
在根目录下
unzip opencv-3.1.0.zip
解压后,由于opencv3与cuda的兼容问题,所以需要修改一下,修改
/opencv-3.4.0/modules/cudalegacy/src/graphcuts.cpp 文件内容,
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) 修改为:#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
执行:
cd opencv-3.4.0mkdir build && cd buildcmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..sudo make -j10sudo make install