ubuntu16.04-caffe-tensorflow安装教程

1. 安装显卡驱动

https://tecadmin.net/install-latest-nvidia-drivers-ubuntu/

2. 安装cuda (8.0)

https://blog.csdn.net/wanzhen4330/article/details/81699769
https://www.cnblogs.com/go-better/p/7161006.html

注意点:
界面安装显卡驱动,(Install NVIDIA Accelerated Graphics Drives for Linux-x86_64) 这里选择no

3. 安装cudnn (6.0)

下载cudnn
[https://developer.nvidia.com/rdp/cudnn-archive](https://developer.nvidia.com/rdp/cudnn-archive
安装cudnn v6.1,方便后面安装tensorflow-gpu 1.4)
http://blogs.csdn.net/m037192554/article/details/81032426

4. 安装OpenCV依赖

sudo apt-get install build-essential # 安装各种开发工具,比如g++,libstdc++等
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 libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
sudo apt-get install ffmpeg

5. 安装caffe ,修改Makefile.config文件

caffe安装包和依赖库可在百度云中找到链接:https://pan.baidu.com/s/16gVpZIWgxhanXXVFjo1D1Q
提取码:qy12

sudo gedit Makefile.config #打开Makefile.config文件 

根据个人情况修改文件:
a.若使用cudnn,则
USE_CUDNN := 1 前 # 去掉

b.若使用的opencv版本是3的,则
OPENCV_VERSION := 3 前 # 去掉

c.若要使用python来编写layer,则
WITH_PYTHON_LAYER := 1 前 # 去掉

d. 将INCLUDE_DIRS和LIBRARY_DIRS中的Caffe依赖库修改为自己本地的路径,比如将Caffe依赖库放置/home/qq/usr/local/下面,那么INCLUDE_DIRS和LIBRARY_DIRS如下:

INCLUDE_DIRS := $(PYTHON_INCLUDE) \
        /usr/local/include/ \
        /home/qq/usr/local/Atlas/include/ \
        /home/qq/usr/local/Boost/Boost_1.61/include/ \
        /home/qq/usr/local/gflags/include/ \
        /home/qq/usr/local/glog/include/ \
        /home/qq/usr/local/hdf5/include/ \
        /home/qq/usr/local/hdf5_hl/include/ \
        /home/qq/usr/local/Leveldb/ \
        /home/qq/usr/local/Lmdb/include/ \
        /home/qq/usr/local/OpenCV/OpenCV_3.4.2_NoCUDA/so/include/ \
        /home/qq/usr/local/Protobuf/google/ \
        /home/qq/usr/local/Protobuf/ \
        /home/qq/usr/local/Snappy/include/

LIBRARY_DIRS := $(PYTHON_LIB) \
        /usr/local/lib/ \
        /usr/lib/ \
        /home/qq/usr/local/Atlas/lib/ \
        /home/qq/usr/local/Boost/Boost_1.61/lib/ \
        /home/qq/usr/local/gflags/lib/ \
        /home/qq/usr/local/glog/lib/ \
        /home/qq/usr/local/hdf5/lib/ \
        /home/qq/usr/local/hdf5_hl/lib/ \
        /home/qq/usr/local/Leveldb/lib/ \
        /home/qq/usr/local/Lmdb/lib/ \
        /home/qq/usr/local/OpenCV/OpenCV_3.4.2_NoCUDA/so/lib/ \
        /home/qq/usr/local/Protobuf/lib/ \
        /home/qq/usr/local/Snappy/lib/ \
        /home/qq/usr/local/3rdparty/
 

e. 修改其他相关的配置(如是否使用CUDA,CUDA路径,是否使用OpenCV3.x)

6. 修改Makefile文件

打开Makefile文件,搜索pathOfProtoc, pathOfProtoc的值就是Caffe依赖库ProtoBuffer的路径,将它的值修改为本地路径即可,比如Protobuffer放置在/home/qq/usr/local/Protobuf/路径中,则将pathOfProtoc的值修改为:

pathOfProtoc:=/home/qq/usr/local/Protobuf/bin/protoc

7. 修改动态链接库

将Makefile.config中LIBRARY_DIRS中的所有caffe依赖库加入系统的动态链接库

a. 执行:

sudo gedit /etc/ld.so.conf

b. 将Caffe依赖库路径添加到ld.so.conf文件中
比如将Caffe依赖库放入/home/qq/usr/local/,则在 ld.so.conf中添加如下内容:(注意最后没有反斜杠,跟第五步中d的区别)

/home/qq/usr/local/Atlas/lib/
/home/qq/usr/local/Boost/Boost_1.61/lib/
/home/qq/usr/local/gflags/lib/
/home/qq/usr/local/glog/lib/
/home/qq/usr/local/hdf5/lib/
/home/qq/usr/local/hdf5_hl/lib/
/home/qq/usr/local/Leveldb/lib/
/home/qq/usr/local/Lmdb/lib/
/home/qq/usr/local/OpenCV/OpenCV_3.4.2_NoCUDA/so/lib/
/home/qq/usr/local/Protobuf/lib/
/home/qq/usr/local/Snappy/lib/
/home/qq/usr/local/3rdparty/

c. 为了避免找不到CUDA路径,将下面的路径也放入ld.so.conf文件

/usr/local/cuda/lib64/

d. 执行:

sudo ldconfig

8. 编译Caffe

执行:
make all -j8
make runtest

注意:Caffe依赖库目前只支持Ubuntu16.04,如果你的Ubuntu是其他版本,需要重新编译

9.编译pycaffe‘

make pycaffe  -j8

配置环境变量,以便python调用:

sudo gedit ~/.bashrc

将export PYTHONPATH=/home/caffe/python:$PYTHONPATH添加到文件中

source ~/.bashrc

10. 安装tensorflow-gpu 1.4

pip3 install tensorflow-gpu

tensorflow-gpu 安装速度特别慢,且容易失败,可加镜像源
https://blog.csdn.net/wukai0909/article/details/62427437

另ubunu自带python版本2.7 和3.5 可自行切换,pip更新等参考博客【Ubuntu】Ubuntu修改默认Python版本 - CSDN博客

检查是否安装成功

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

显示Hello,tensorflow! 即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348