Reference:
CPU:
https://www.youtube.com/watch?v=DnIs4DRjNL4
GPU:
Part1:
https://www.youtube.com/watch?v=ytyU9NLkHl0
Part2:
https://www.youtube.com/watch?v=DkyxN4ANddA
gpu Installation details:
https://github.com/adeelz92/Install-Caffe-on-Ubuntu-16.04-Python-3
CUDA:
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#axzz4VZnqTJ2A
cuDNN:
https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html

1、官网永远是最棒的教程,谨记!
2、分CPU版和GPU版,建议先掌握CPU版
3、不要妄想,刚开始学习安装,就能一次装好
4、不同机器会出现不同的问题,请及时Google
5、不要进入管理员模式
6、里面的路径,不要简单的复制粘贴,要根据自己的目录修改下

Prerequisites:

sudo apt-get update
sudo apt-get upgrade
sudo 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-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install python-dev python-pip build-essential
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

再打开另一个网页,caffe的github界面:https://github.com/BVLC/caffe

ubuntu终端中输入:

sudo apt-get install git # 如果没有git工具的话
cd ~ # 进入到根目录
git clone https://github.com/BVLC/caffe.git

2.进入编译界面:

往下滚动:
直到看见python

ubuntu终端中输入上面的命令:

cd caffe # 进入caffe文件夹
find -name requirement.txt  #将得到

cd python
for req in $(cat requirements.txt); do pip install $req; done

这里如果出现pip版本低的提示,不用理会。如果出现了什么错误,自行搜索解决(一般不会出错)

cp Makefile.config.example Makefile.config
vim 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.7
find -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/lib
find -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 all
make runtest

方法二(cmake):

mkdir build && cd build
cmake ..
make all -j16
make install
make runtest

没问题后,进入下面

pip install pydot
sudo apt-get install graphviz
sudo apt-get install python-matplotlib python-numpy python-pil python-scipy
sudo apt-get install build-essential cython
sudo apt-get install python-skimage
make pycaffe
make pytest
sudo 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 vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb

进行更新保存

sudo update-initramfs -u

接下来关机重启之后,在终端输入

lsmod | grep nouveau

若没有输出,则证明关闭nouveau成功!

1.2 PPA安装NVIDIA驱动

添加Graphic Drivers PPA

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo 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.run
sudo sh cuda_10.0.130_410.48_linux.run --no-opengl-libs
reboot

重新登陆后,打开终端,配置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 Version          8.0 / 8.0CUDA Capability Major/Minor version number:    3.5Total amount of global memory:                 2004 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 740M
Result = PASS

3.安装cudnn

cudnn需要去官网下载,而去官网下载还需要注册,很麻烦,我就把我的百度云链接发出来,供大家下载
链接:https://pan.baidu.com/s/1O7vvWEAvAHbHVCQOboav5A 密码:f20o
解压之后,你会在跟目录下看见cuda文件夹,在终端执行命令
请到自己解压后的lib64文件夹看一看,libcudnn.so 后面跟的是什么

进入到lib64可以输入:locate libcudnn.so
cd 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.10
sudo ln -sf libcudnn.so.5.1.10 libcudnn.so.5
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig

安装完成后可用 nvcc -V 命令验证是否安装成功,若出现以下信息则表示安装成功:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130

4.安装opencv3.4

进入官网选择对应版本的source下载:https://opencv.org/releases.html

安装opencv需要的一些库,这个是都需要安装的,能安装的尽量都安装上

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 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 unzip
sudo 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.0
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j10
sudo make install

ubuntu 16.04 官网版安装 caffe 步骤详解[CPU][紧跟官网,永不踩坑]相关推荐

  1. 在linux搭建wiki教程,在Ubuntu 16.04系统上安装WikkaWiki

    一.WikkaWiki介绍 WikkaWiki是一个灵活的.兼容标准的.轻量级的.平台独立的开源Wiki引擎,它使用PHP语言开发,后端存储采用了MySQL数据库.WikkaWiki的设计目标是速度快 ...

  2. Ubuntu 16.04 一系列软件安装命令,包括QQ、搜狗

    2019独角兽企业重金招聘Python工程师标准>>> Ubuntu 16.04 一系列软件安装命令,包括QQ.搜狗.Chrome.vlc.网易云音乐安装方法 2016年07月20日 ...

  3. 【转】Ubuntu 16.04 Nvidia驱动安装(run方式)

    转自:Ubuntu 16.04 Nvidia驱动安装(run方式)_lihe的博客-CSDN博客 1.下载驱动程序 Nvidia驱动下载 https://www.geforce.cn/drivers/ ...

  4. linux加protobuf变量环境,protobuf简单介绍和ubuntu 16.04环境下安装教程

    protobuf简单介绍 protobuf是谷歌的开源序列化协议框架,结构类似于XML,JSON这种,显著的特点是二进制的,效率高,主要用于通信协议和数据存储等方面,算是一种结构化数据的表示方法. p ...

  5. Linux Ubuntu 16.04 Python matplotlib安装中文字体,黑体,楷体,Times New Roman等,解决中文乱码

    Linux Ubuntu 16.04 Python matplotlib安装中文字体,Times New Roman等 文章目录 Linux Ubuntu 16.04 Python matplotli ...

  6. VNC实现Windows远程访问Ubuntu 16.04(无需安装第三方桌面,直接使用自带远程工具)----本人亲测可用

    原文地址::VNC实现Windows远程访问Ubuntu 16.04(无需安装第三方桌面,直接使用自带远程工具)-蒲公英云 相关文章 1.VNC实现Windows远程访问Ubuntu 16.04(无需 ...

  7. ubuntu安装pr_在Ubuntu 16.04服务器上安装Zabbix 3.2

    监控服务器 - 什么是Zabbix Zabbix是企业级开源分布式监控服务器解决方案. 该软件监控网络的不同参数和服务器的完整性,还允许为任何事件配置基于电子邮件的警报. Zabbix根据存储在数据库 ...

  8. ubuntu 16.04, conda不能安装、更新包的解决办法

    ubuntu 16.04, conda不能安装.更新包的解决办法 - truth的文章 - 知乎 https://zhuanlan.zhihu.com/p/36188524 昨天打算更新 pytorc ...

  9. linux安装Openssl步骤详解_问题:OpenSSL: error:100AE081:elliptic curve routines:EC_GROUP_new_by_curve_name:un

    linux上安装Openssl步骤详解 问题: OpenSSL: error:100AE081:elliptic curve routines:EC_GROUP_new_by_curve_name:u ...

最新文章

  1. mysql 用户 多主机_MySQL单主机多实例部署
  2. Linux磁盘格式化和挂载
  3. oracle双机冷备方案,Oracle 11g双机冷备
  4. 迷宫问题(信息学奥赛一本通-T1255)
  5. 代码创建按钮,文本输入框
  6. Python入门--数据类型的转换
  7. linux提示有新邮件,/var/spool/mail/root 中有新邮件 解决方法
  8. xcode9 免证书真机调试
  9. 眼疲劳症如何自我检测
  10. c++编译报错 error c2248: “xxx:xxx“:无法访问private成员(在“xxx“类中声明)
  11. IDEA Android开发 连接华为手机调试
  12. 骚操作 | 2秒教你用微信远程控制电脑,Get~
  13. APQP(advanced product quality planning先期产品质量策划)
  14. 关于Python的前后、单双下划线作用,看完这篇文章,吊打面试官!
  15. 圆周率的计算——典型Python案例
  16. 转:为什么谷歌越来越牛逼,而百度却...
  17. 足球与oracle系列(2):巴西揭幕战预演,oracle体系结构杂谈
  18. tomcat发布前端项目
  19. 福禄克DSX2-8000 DSX2-5000 业以太网连接器集锦DSX-CHA021S
  20. dnf 跨服 服务器 位置,《DNF》86版本跨区表一览 看你属于哪个跨区频道

热门文章

  1. Uncaught TypeError: Cannot read property ‘clientWidth‘ of null报错
  2. JAVA 语言如何进行异常处理,关键字: throws,throw,try,catch,finally分别代表什么意义? 在try块中可以抛 出异常吗?...
  3. java对redis的基本操作(初识)
  4. Servlet—简单的管理系统
  5. Akka边学边写(3)-- ByteString介绍
  6. 大型网站系统架构实践(一)从简单到复杂
  7. 云计算之路-阿里云上:Web服务器请求到达量突降
  8. 《恋上数据结构第1季》映射 TreeMap,HashMap,LinkedHashMap
  9. group by和order by在springboot中连用03
  10. [转]Linux内核基础与常用命令总结