安装Python环境

本人环境为Anaconda3 ,可参照 https://blog.csdn.net/ctwy291314/article/details/86571198 完成安装Python2.7环境安装与多Python环境切换。

安装依赖包

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

sudo apt-get install git cmake build-essential

安装显卡驱动与CUDA 、cuDNN

请参照 https://blog.csdn.net/ctwy291314/article/details/80951148 进行CUDA 、cuDNN进行安装。

安装protoc

命令 whereis protoc可以查看哪些路径下安装了protoc

命令which protoc可以查看默认选用protoc的路径

命令 protoc --version可以查看当前protoc版本



安装protobuf2.6.1

下载文件

https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz

解压安装

tar -zxvf protobuf-2.6.1.tar.gz
sudo apt-get install build-essential
cd protobuf-2.6.1/
./configure
make
make check
sudo make install

指定protoc的版本

在Makefile 中修改这两句:

我的protobuf路径为/usr/local/bin/protoc

$(Q)protoc --proto_path=$(PROTO_SRC_DIR) --cpp_out=$(PROTO_BUILD_DIR) $<
$(Q)protoc --proto_path=src --python_out=python $<

$(Q)/usr/local/bin/protoc --proto_path=$(PROTO_SRC_DIR) --cpp_out=$(PROTO_BUILD_DIR) $<
$(Q)/usr/local/bin/protoc --proto_path=src --python_out=python $<

即把开头的"protoc"补全路径即可 (/usr/bin/protoc即为自己向指定给的版本路径)

注:这种修改不会影响系统默认的protoc版本,只会在caffe编译的时候调用相应的proto版本

安装 caffe

首先在你要安装的路径下 clone :

git clone https://github.com/BVLC/caffe.git

进入 caffe ,将 Makefile.config.example 文件复制一份并更名为 Makefile.config ,也可以在 caffe 目录下直接调用以下命令完成复制操作 :

cd caffe
sudo cp Makefile.config.example Makefile.config

复制一份的原因是编译 caffe 时需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 给出的配置文件例子,不能用来编译 caffe。

然后修改 Makefile.config 文件,在 caffe 目录下打开该文件:

sudo gedit Makefile.config

修改 Makefile.config 文件内容:

  1. 应用 cudnn
    #将
#USE_CUDNN := 1
#修改成:
USE_CUDNN := 1
  1. 应用 opencv 版本
    #将
#OPENCV_VERSION := 3
#修改为:
OPENCV_VERSION := 3
  1. 使用 python 接口
	#将
#WITH_PYTHON_LAYER := 1
#修改为
WITH_PYTHON_LAYER := 1
  1. 修改 python 路径

    修改PYTHON_INCLUDE、PYTHON_LIB路径

    本人安装的是Anaconda3多Python版本切换,python2.7 目录为:/home/hylink/anaconda3/envs/python27



    再修改INCLUDE_DIRS、LIBRARY_DIRS 路径

    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
  2. 修改 caffe 目录下的 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
  3. 开始编译

    make all -j8

    编译出现问题1:

    NVCC src/caffe/layers/bnll_layer.cu
    nvcc fatal : Unsupported gpu architecture 'compute_20'
    Makefile:594: recipe for target '.build_release/cuda/src/caffe/layers/bnll_layer.o' failed
    make: *** [.build_release/cuda/src/caffe/layers/bnll_layer.o] Error 1
    make: *** Waiting for unfinished jobs....

    仔细查看了一下 Makefile.config 中 CUDA_ARCH 设置未按规定设置:

    # CUDA architecture setting: going with all of them.
    # For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
    # For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
    # For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
    CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
    -gencode arch=compute_20,code=sm_21 \
    -gencode arch=compute_30,code=sm_30 \
    -gencode arch=compute_35,code=sm_35 \
    -gencode arch=compute_50,code=sm_50 \
    -gencode arch=compute_52,code=sm_52 \
    -gencode arch=compute_60,code=sm_60 \
    -gencode arch=compute_61,code=sm_61 \
    -gencode arch=compute_61,code=compute_61

    因为我装的是CUDA9.0所以把下面这两行删除就可以了

    -gencode arch=compute_20,code=sm_20 \
    -gencode arch=compute_20,code=sm_21 \

    编译出现问题2:

    error: #error -- unsupported GNU version! gcc versions later than 6 are not supported!

    错误的解决方式很简单,就是安装低版本gcc和g++,并创建链接或更改gcc各版本的优先级。

    此处为以后考虑安装了gcc-6和g+±6,大家可以自行决定版本,只要比错误中提到的支持上限小就没问题

    sudo apt-get install gcc-6
    sudo apt-get install g++-6

    然后执行

    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 10
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 10

    编译出现问题3:

    error while loading shared libraries: libcudart.so.9.0: cannot open shared object file: No such file

    error while loading shared libraries: libcudnn.so.7: cannot open shared object file: No such file

    解决方法

    sudo cp /usr/local/cuda-9.0/lib64/libcudart.so.9.0 /usr/local/lib/libcudart.so.9.0 && sudo ldconfig
    sudo cp /usr/local/cuda-9.0/lib64/libcublas.so.9.0 /usr/local/lib/libcublas.so.9.0 && sudo ldconfig
    sudo cp /usr/local/cuda-9.0/lib64/libcurand.so.9.0 /usr/local/lib/libcurand.so.9.0 && sudo ldconfig
    sudo cp /usr/local/cuda-9.0/lib64/libcudnn.so.7 /usr/local/lib/libcudnn.so.7 && sudo ldconfig

编译成功后可运行测试:

sudo make runtest -j8

安装 pycaffe

首先编译 pycaffe :

cd caffe
sudo make pycaffe -j8

编译 pycaffe 成功后,验证一下是否可以在 python 中导入 caffe 包,首先进入 python 环境:

python

然后导入 caffe :

>>> import caffe

错误1:

ModuleNotFoundError: No module named 'caffe._caffe'

正确编译 pycaffe后,会在caffe/python/caffe目录下生成_caffe.so的文件

解决方式一:

每次在程序里加一句 sys.path.append('path to cafferoot/python')

例如:sys.path.append('/home/hylink/eclipse-workspace/caffe/python')

解决方式二:

sudo gedit ~/.bashrc
export PYTHONPATH=/home/hylink/eclipse-workspace/caffe/python:$PYTHONPATH
source~/.bashrc

至此caffe环境安装完成。

Ubuntu Anaconda3 环境下安装caffe的更多相关文章

  1. Anaconda3环境下安装OpenCV(cv2)

    Anaconda3环境下安装OpenCV(cv2) 主要步骤 1 首先查看自己的Anaconda安装的python版本 2 下载相应的OpenCv.whl文件 3 使用cmd安装.whl文件 查看自己 ...

  2. linux(ubuntu)环境下安装IDEA

    想调试java虚拟机内存溢出的情况,在调试过程中总会出现一些不可预见的状况,正好在学linux,在windows上安装了虚拟机,安装的镜像是ubuntu(乌班图)装在了虚拟机中,装在虚拟机中好处是即使 ...

  3. linux(ubuntu)环境下安装及配置JDK

    安装完IDEA之后遇到了问题,发现jdk安装完之后配置环境变量好困难,下面总结一下我的安装及配置方式: JDK下载链接:http://download.oracle.com/otn-pub/java/ ...

  4. 在windows64位Anaconda3环境下安装XGBoost

    安装步骤参考的是: "Installing XGBoost For Anaconda on Windows":https://www.ibm.com/developerworks/ ...

  5. ubuntu linux环境下安装配置jdk和tomcat

    关于linux搭建服务器,ubuntu中jdk和tomcat的安装和配置 一.jdk的安装配置 1:去官网下载好自己需要的版本,注意,linux压缩文件通常以tar.gz结尾,别下载错了.本次我下载安 ...

  6. Ubuntu --- lamp环境下安装php扩展和开启apache重写

    安装教程参考:http://www.laozuo.org/8303.html 1.安装php扩展(比如安装mbstring) 先搜索相关的包 apt-cache search php7 再安装 apt ...

  7. 在Anaconda3环境下安装并切换 Tensorflow 2.0 环境

    背景 Anaconda切换各种环境非常方便,现在我们就来介绍一下如何使用anaconda安装tensorflow环境. anaconda v3.5 from 清华镜像站 tensorflow v2.0 ...

  8. ubuntu LNMP环境下安装Redis,以及php的redis扩展

    1.下载 sudo wget http://download.redis.io/releases/redis-4.0.9.tar.gz 2.解压 sudo tar zvxf redis-4.0.9.t ...

  9. ubuntu在anaconda2下安装anaconda3环境 && 在Pycharm中配置Python3

    适合在已经装有anaconda2环境的机器上配置anaconda3环境(或在有anaconda3的环境下再配置2). 1. 下载 anaconda3 下载地址: 推荐清华镜像      https:/ ...

随机推荐

  1. MySQL两个时间相减

    SELECT TIMESTAMPDIFF(MONTH,'2009-10-01','2009-09-01'); interval可是: SECOND 秒 SECONDS MINUTE 分钟 MINUTE ...

  2. 【PowerOJ1737&网络流24题】太空飞行计划问题(最小割)

    题意: 思路: #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned in ...

  3. 设计模式学习笔记——Adapter 适配器模式

    适配器设计模式的适应场景: 一般情况是上端固定,下端固定,下端功能不满足或跟上端不协调,使用适配器重新包一层(继承适配器接口,以满足上端需求,继承下层类,以调用方法),使下端代码能满足上端需求(欺骗, ...

  4. iOS开发自定义字体之静态字体

    最后更新 2017-04-25 在iOS开发中经常会用到字体, 一般字体文件比较小的,单一的,几十k, 可以通过内置进去;如果字体文件比较多或者字体文件比较大,通常通过动态加载方式. 静态加载方式 将 ...

  5. Linux一些最基础操作

    最后更新时间: 2015-05-06 这是一篇很早之前写的,整理笔记的时候看到了,Linux 非常基础操作. bin/sbin: 一般是存放可以执行文件 绝对路径 相对路径 mkdir dir ls: ...

  6. Android-Studio:Cannot reload AVD list

    Android-Studio:Cannot reload AVD list 今天用Android-Studio时点击"RUN"后出现如下错误,特此记录一下解决方案. Cannot ...

  7. MyBatis系列:二、配置文件详解

    本文会详细介绍MyBatis的常用配置 1.properties节点 <properties resource="mybatis-config.properties"> ...

  8. VMware 虚拟化编程(3) —VMware vSphere Web Service API 解析

    目录 目录 前文列表 VMware vSphere Web Services API VMware vSphere Web Services SDK vSphere WS API 中的托管对象 Man ...

  9. delphi SetWindowPos改变窗体位置和状态

    http://blog.163.com/yuanliaofan@126/blog/static/1730690722012534428814/ delphi SetWindowPos改变窗体位置和状态 ...

  10. Java ——修饰符 包 Bean

    本节重点思维导图 Bean 是一个类,类中所有的属性都是私有化的,所有的属性都有相应的getter/setter方法 对于boolean类型的成员变量来说,它的getter方法是:isXxxx() 详 ...