caffe實戰筆記__Deep

來源:互聯網
上載者:User

Caffe簡要介紹:

Caffe還沒有windows版本,所以我需要遠程登入linux伺服器

Caffe主要處理圖片/圖片序列

 Caffe讀取的資料格式

從專用的資料庫中讀取(lmdb、leveldb)

直接讀取圖片

從記憶體中讀取(會佔很多記憶體)

從HDF5檔案中讀取

從滑動視窗中讀取(在大圖中滑動一次作為一張小圖)

最常用的是前面兩種方式。預設是從lmdb資料庫格式中讀取,因此需要先把圖片檔案轉換成lmdb格式檔案。直接讀取圖片會導致無法減均值。如果不考慮減均值的情況,可直接讀取圖片。

 Caffe操作1----準備資料

Step1:得到檔案清單清單

 

上面的圖片源自FER庫,其中單張圖表示一個表情,寫代碼自動產生txt文檔

Step2:轉換成imdb格式

命令原理:

 

其中包括上面四個參數,粉色參數可以選擇不設,其中--表示可以不調整

實際操作:

在根目錄home下的/caffe路徑下開啟終端,輸入sudo命令,輸入密碼,進入最大許可權:

 

輸入命令:(輸入時注意空格)

 

在caffe中,作者為我們提供了這樣一個檔案:convert_imageset.cpp,存放在根目錄下的tools檔案夾下。編譯之後,產生對應的可執行檔放在 buile/tools/ 下面,這個檔案的作用就是用於將圖片檔案轉換成caffe架構中能直接使用的imdb檔案。

螢幕上顯示:

 

查看結果:

在目標目錄下新增了我命名的一個檔案夾

 

檔案夾裡包括兩個子檔案,data.mdb存放資料;lock.mdb存放標籤

 

基礎知識補充

Linux下的檔案夾與目錄

/home

根目錄,分區時分得最大

/bin

存放系統命令

/user

最大的目錄,存放應用程式和檔案

/etc

存放設定檔

/dev

裝置特殊檔案

/mnt

用於臨時掛載硬碟、光碟片

/src

裡面放源檔案如cpp

如何產生train.txt檔案以及如何在轉imdb格式時調整圖片格式,見:http://www.cnblogs.com/denny402/p/5082341.html

Step3:計算均值

減去均值,可以提高精度。當然也可以選擇不減均值。

副檔名必須是binaryproto

實際代碼:

 

其中包括兩個參數,一個是放置imdb資料的檔案地址,另一個是儲存均值檔案的地址及檔案名稱字

得到binarypro均值檔案

擴充閱讀:http://www.cnblogs.com/denny402/p/5102328.html

Caffe操作2----構建網路結構

在啟動並執行整個流程中,可以分為三個階段:訓練階段、驗證階段和測試階段。網路結構在不同的階段是不同的,都存放在prototxt檔案裡面。為了方便,一般將訓練階段和驗證階段的網路結構放在一個檔案裡,測試階段的網路結構單獨放在一個檔案裡:

 

一個layer表示一層

layer是可以複製可以嵌套的

1)資料層

Name可以隨便取

Type是系統內建的,不可以自己命名

Top表示向上傳送資料,bottom表示從下面接收資料,通過這個top還是bottom就決定了資料的流向以及不同層之間的連結關係

Phase:train表示只有訓練時調用這層

Mirror表示翻轉

Cropsize表示一張圖變為40*40*10,使得樣本數增加

Batchsize是2的倍數,表示批量處理

http://www.cnblogs.com/denny402/p/5070928.html

2)卷積層

 

Decay=0表示不衰減

Num_output 卷積核個數/節點數目

Kernal_size 一般是3*3 5*5 7*7 不能太大

Padding 卷積後圖變小,所以固定填充0,如果=2,表示周邊上下左右填充2個pixel

Gaussian表示用高斯方法對w與b進行初始化

http://www.cnblogs.com/denny402/p/5071126.html

3)啟用層

 

常用relu,sigmod

http://www.cnblogs.com/denny402/p/5072507.html

4)池化層

caffe只支援max和average,stochastic是隨機的意思

Stride不能寫1,否則就沒有池化功能

http://www.cnblogs.com/denny402/p/5071126.html

5)全串連層

 

Xvaier初始化方法很好,預設值為0

Type類型都不變

http://www.cnblogs.com/denny402/p/5072746.html

6)其它層

Loss層加在全串連層後面

如果要測試,還加一層softmax層

Deploy.prototxt檔案用於測試階段,測試資料沒有標籤值,因此資料輸入層與其它兩個階段不同。

 

Caffe自動會複製灰階圖變為3通道圖

Caffe操作3----配置參數solver.prototxt

這裡設定全域參數

每訓練完成一個interval以後就驗證一次是否>449

基礎學習率決定收斂不收斂

Step:每隔多少變化一次

Stepshot:每訓練多少儲存一次參數

 

http://www.cnblogs.com/denny402/p/5074049.html

Caffe操作4----訓練模型

這一步會產生caffe 的model檔案,把參數訓練完成

 

 

例:

build/tools/caffe train -solver /home/bnu/fer/solver.prototxt

http://www.cnblogs.com/denny402/p/5076285.html

Caffe操作5----測試模型

 

Classification.bin是內建的可執行體

http://www.cnblogs.com/denny402/p/5111018.html

 


原文地址: http://www.cnblogs.com/weiqinglan/p/5969016.html?utm_source=itdadao&utm_medium=referral

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.