• Ubuntu 16.04安装Caffe的记录及FCN官方代码的配置


    相关内容搜集自官方文档与网络,既无创新性,也不求甚解,我也不了解Caffe,仅仅搭上之后做个记录,方便以后重装

    安装依赖项
    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 libgflags-dev libgoogle-glog-dev liblmdb-dev

    下载Caffe
    sudo apt-get install git
    git clone https://github.com/BVLC/caffe.git


    cp Makefile.config.example Makefile.config

    修改Makefile.config
    找到
    # CPU_ONLY := 1
    取消注释,设置为CPU模式,不用CUDA

    找到
    # Whatever else you find you need goes here.
    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
    LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
    修改为如下形式,以加入hdf5库的目录
    # Whatever else you find you need goes here.
    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/hdf5/serial

    进行编译
    make all
    make test
    make runtest


    安装Caffe的Python接口
    sudo apt-get install gfortran 安装scipy库的时候需要fortran编译器
    进入Caffe根目录下的python目录,目录下的requirements.txt文件中有依赖项
    sudo pip install -r requirements.txt

    打开~/.bashrc文件,在最后面加入如下代码,以将caffe的python目录加入环境变量中
    export PYTHONPATH=/home/xxx/caffe/python:$PYTHONPATH
    保存退出,更新配置文件
    sudo ldconfig

    修改配置文件Makefile.config
    找到
    # Note: this is required only if you will compile the python interface.
    按个人需要修改后面的内容的注释
    找到
    # Uncomment to support layers written in Python (will link against Python libs)
    # WITH_PYTHON_LAYER := 1
    取消注释

    编译
    make pycaffe

    其间会报错
    fatal error: numpy/arrayobject.h
    需要安装python-numpy
    sudo apt-get install python-numpy

    然后再编译就可以了

    进入python,import caffe

    下载FCN的官方源码
    git clone https://github.com/shelhamer/fcn.berkeleyvision.org.git
    进入voc-fcn8s目录,打开caffemodel-url文件中的地址,下载已经训练好的caffemodel,保存在当前目录下
    修改FCN根目录下的infer.py,根据需要修改载入图片的地址,和用到的模型的地址
    在原有代码中加入如下代码,用于显示与保存图片
    import matplotlib.pyplot as plt
    plt.imshow(out, cmap='gray');plt.axis('off')
    plt.savefig('test.png')
    plt.show()


    数据集
    VOC2007与VOC2012,用于图像语义分割、目标检测与图像分类
    http://pjreddie.com/projects/pascal-voc-dataset-mirror/

    MNIST,用于数字的手写识别
    http://yann.lecun.com/exdb/mnist/

    CIFAR-10,用于10类图像分类
    CIFAR-100,用于100类图像分类
    https://www.cs.toronto.edu/~kriz/cifar.html

  • 相关阅读:
    BZOJ 1008: [HNOI2008]越狱
    BZOJ 1007: [HNOI2008]水平可见直线
    BZOJ 1005: [HNOI2008]明明的烦恼
    【LibreOJ10121】与众不同(RMQ,二分)
    【NOIP模拟】数字对(RMQ,二分)
    【POJ3264】Balanced Lineup(RMQ)
    【JZOJ4857】Tourist Attractions(Bitset)
    【BZOJ2330】糖果(差分约束系统,强连通分量,拓扑排序)
    C++对拍数据生成
    C++字符串读入
  • 原文地址:https://www.cnblogs.com/simbon/p/6354417.html
Copyright © 2020-2023  润新知