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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM