關於caffe的編譯 Ubuntu16 04

2021-07-30 19:48:15 字數 2803 閱讀 9673

本次的編譯環境是在虛擬機器上的ubuntu16.04上進行的。

一、caffe的編譯

1)安裝caffe的依賴檔案

由於虛擬機器下的ubuntu系統一般不包含gpu,故這次安裝時為了在無gup環境下執行caffe。 有gpu安裝caffe與無gpu安裝caffe的區別一般就兩點:

1.安裝cuda的時候不安裝顯示卡驅動;

2.最後安裝好caffe,執行程式時,將相關配置檔案改為cpu執行模式,而不是gpu執行模式。

首先,先安裝乙個git,在這之前要進行依賴源的更新

$sudo apt-get update

然後進行git的安裝(可以使用git --version對是否安裝了git進行檢視)

$sudo apt-get install git

接著進行依賴源的安裝

$sudo apt-get install --no-install-recommends libboost-all-dev

$sudo apt-get install libatlas-base-dev

注意:這些安裝都需要ubuntu聯網的情況下才能安裝成功

進行完這些安裝之後

2)配置python

$sudo apt-get install python-dev

$sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

$ git clone

4)修改makefile.config

$ cd caffe              //到caffe的根目錄下

$ mv makefile.config.example makefile.config       //修改makefile檔案

//用vi編輯器開啟makefile.config,修改其中的cpu_only選項,本例子只用cpu模式,開啟該選項(去掉「#」)表示caffe編譯時僅支援cpu,不支援gpu

cpu_only :=1

5)編譯caffe

//接著進行caffe的編譯,這個過程需要一定的時間

$ cd caffe

$ make pycaffe

$ make all

$ make test

$ make runtest

注意:編譯時要把當前目錄定位到caffe根目錄下,否則會報錯

make:***no rule to make target 'pycaffe'.  stop.

載入完這些命令之後沒有報錯就應該是編譯完成了。

接下執行caffe的經典例子mnist對其進行測試

編譯的時候常見的問題:

a) 配置caffe的python環境時make pycaffe提示fatal error:numpy/arrayobject.h no such file or directory時解決辦法:

sudo apt-get install python-numpy

b)make pycaffe 時出現fatal error:hdf5.h:沒有那個檔案或目錄的解決辦法:

首先在makefile.config檔案的第85行,新增/usr/include/hdf5/serial/ 到 include_dirs,也就是把下面第一行**改為第二行**。

include_dirs := $(python_include) /usr/local/include

include_dirs:=$(python_include)/usr/local/include  /usr/include/hdf5/serial/

然後在makefile檔案的第173行,把 hdf5_hl 和hdf5修改為hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行**改為第二行**。

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

二、mnist的訓練

mnist(mixed national institute of standards and technology)是乙個大型的手寫體數字資料庫,廣泛的用於機器學習領域的訓練和測試。

$ cd caffe/data/mnist

$ ./get_mnist.sh

t10k-labels-idx1-ubyte   train-labels-idx1-ubyte

t10k-images-idx3-ubyte  train-images-idx3-ubyte

2) 轉換格式

在caffe根目錄下執行

./examples/mnist/create_mnist.sh

creating lmdb

done.

接下來就可以進行訓練了

3) 訓練選用的是mnist資料集的lenet模型,在examples/mnist下可以看到lenet的相關資訊 執行

$ ./examples/mnist/train_lenet.sh

即可開始訓練,收斂過程很漫長。

注意:如果無法正常開始訓練那麼需要進入到examples/mnist/lenet_solver.prototxt 中

將最後一項solver_mode的gpu改為cpu 後

再執行 examples/mnist/train_lenet.sh 就可以正常訓練了

caffe編譯關於protobuf錯誤的解決辦法

問題 當主機上裝了tensorflow和anaconda時,再去編譯caffe就會遇到關於protobuf的錯誤。原因 系統使用的protoc是anaconda下的,一般版本是3.6 通過後面命令檢視 protoc version which protoc 而編譯caffe需要的protoc版本需要...

微軟Caffe編譯

3 使用vs2013開啟caffe.sln編譯自動安裝第三方庫。安裝過程中可能出現的錯誤 e nugetpackages boost.1.59.0.0 lib native include boost format alt sstream impl.hpp error c2220 警告被視為錯誤 沒...

caffe編譯問題

1.編譯提示一系列cudnn問題,caffe版本過舊,與新版cudnn不相容。解決 可嘗試替換 caffe root include caffe util cudnn.hpp以及 caffe root src caffe layers下面名字以cudnn開頭的檔案為最新版caffe內的檔案,最新版c...