zoukankan      html  css  js  c++  java
  • [笔记] Ubuntu 18.04源码安装caffe流程

    虽然Ubuntu 18.04可以通过apt安装caffe,但是为了使用最新的代码,还是值得从源码安装一遍的。

    安装环境

    • OS: Ubuntu 18.04 64 bit
    • 显卡: NVidia GTX 1080
    • CUDA: 10.0
    • cuDNN: 7.4
    • Python: 3.6

    任务:从源码编译安装caffe

    安装OpenCV

    参考[笔记] Ubuntu 18.04源码编译安装OpenCV 4.0流程,安装OpenCV。

    安装依赖

    $ apt install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
    $ apt install -y --no-install-recommends libboost-all-dev
    $ apt install -y libatlas-base-dev
    $ apt install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
    

    下载源码

    $ git clone https://github.com/BVLC/caffe.git
    $ cd caffe
    $ cp Makefile.config.example Makefile.config
    

    更新代码

    因为使用OpenCV 4.0的版本,所以有些常量需要更新:

    CV_LOAD_IMAGE_GRAYSCALE -> cv::ImreadModes::IMREAD_GRAYSCALE
    CV_LOAD_IMAGE_COLOR     -> cv::IMREAD_COLOR
    

    替换命令如下:

    sed -i 's/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g' src/caffe/layers/window_data_layer.cpp
    sed -i 's/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g' src/caffe/util/io.cpp
    sed -i 's/CV_LOAD_IMAGE_GRAYSCALE/cv::ImreadModes::IMREAD_GRAYSCALE/g' src/caffe/util/io.cpp
    

    修改配置

    为了使用OpenCV 4.0 + CUDA 10 + cuDNN + python 3.6,修改Makefile.config如下:

    ...
    USE_CUDNN := 1
    ...
    OPENCV_VERSION := 3
    ...
    CUDA_DIR := /usr/local/cuda-10.0
    ...
    CUDA_ARCH :=    
                    -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
    ...
    # Uncomment to use Python 3 (default is Python 2)
    PYTHON_LIBRARIES := boost_python3 python3.6m
    PYTHON_INCLUDE := /usr/include/python3.6m 
                    /usr/local/lib/python3.6/dist-packages/numpy/core/include
    ...
    WITH_PYTHON_LAYER := 1
    ...
    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial /usr/local/cuda/include /usr/local/include/opencv4
    LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
    

    编译caffe

    $ make -j8
    $ make pycaffe
    

    一切顺利的话,生成的工具在build/tools目录下。

    错误处理

    如果报错如下:

    /usr/local/lib/libopencv_imgcodecs.so: undefined reference to `TIFFReadDirectory@LIBTIFF_4.0'
    

    解决方案:

    $ conda uninstall libtiff
    
  • 相关阅读:
    PVID和VID与交换机端口
    IO密集型和CPU密集型区别?
    Redis回收进程是如何工作的
    索引的工作原理及其种类
    drop,delete与truncate的区别
    你用过的爬虫框架或者模块有哪些?优缺点?
    列举您使用过的Python网络爬虫所用到的网络数据包
    对cookies与session的了解?他们能单独用吗
    有用过Django REST framework吗
    Django中哪里用到了线程?哪里用到了协程?哪里用到了进程
  • 原文地址:https://www.cnblogs.com/journeyonmyway/p/10327907.html
Copyright © 2011-2022 走看看