【蜂口 | AI人工智慧】caffe框架的使用——龍鵬的一站式caffe工程實踐連載(三)

絵飛的魚發表於2018-09-19

知識引入        

這一次我將給大家帶來Caffe基本使用的一個分享。本次分享將包含以下幾個內容,首先Caffe的框架的介紹,我們將簡單介紹一下Caffe框架的一些基本資訊。然後介紹Caffe的基本使用,包含資料格式等等。接下來我們再詳細的分析一下Caffe的一個網路配置檔案。最後我們將詳細的介紹一下Caffe訓練的引數。

Caffe基本資訊

Caffe,它是一個以C++和Cuda程式碼為主的一個開源框架。筆者比較推薦這樣的一個開源框架進行學習,因為對於初學者來說,他可以接觸到大量非常優秀的CI的程式碼,這對於大家鞏固自己的程式碼基礎是非常有用的。Caffe這個框架非常的靈活,它可以支援命令列python和Matlab等介面。多機多卡的使用也非常方便, GPU和CPU的切換也是非常的靈活。Caffe的開發者大家想必不陌生,賈揚清他在知乎上面也是一個大V,另外它還有一個另外的一個核心開發者,大家可以去Github上面關注一下他。

支援 Caffe的主要平臺

包括Linux mac,windows。筆者比較用的比較多的是Linux。

Caffe的依賴環境

Caffe依賴的開源庫比較多,包括Cuda、Protobuf、Opencv等等。

Cuda是一個用於加速GPU訓練的一個庫。Protobuf是用於做序列化檔案的,Opencv是一些資料讀取介面,更多的這個依賴環境,我們在前面Caffe的編譯,一種詳細的說明,大家可以回過頭去看。筆者非常喜歡Caffe這個開源框架的一個主要原因,是因為Caffe將資料和網路的定義與訓練和測試程式碼進行了完整的分離。

Tensorflow對比

當我們使用Tensorflow這樣一個框架的時候,我們一般會將資料的讀取,網路的配置,網路的訓練和測試,完整地寫在一個Python檔案裡面。在筆者看來,這裡顯得有點混亂,不夠靈活。而Caffe不一樣,Caffe將資料和網路定義寫在了一個網路配置檔案裡面,將訓練和測試程式碼與之完全進行分離。具體來說,我們使用Caffe是這樣的一個流程,首先我們準備好資料,它可以是Image的格式或者Lmdb的格式,然後我們定義好網路的檔案,包含網路結構的配置,以及輸入資料的路徑的配置。然後我們定義好一些訓練引數,包括學習率最佳化方法等等。最後我們使用一些介面進行訓練和測試,可以使用C++介面或者Python介面或者Matlab介面。

Caffe使用流程

主要包括以下四個步驟,如下圖所示:

undefined

專案裡我們會解讀 Caffe的資料格式。其實現在主流的開源框架,採用的資料儲存格式都是類似的,他們都是採用一個四維張量來進行儲存,這也符合卷積神經網路的資料格式的基本要求。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31553577/viewspace-2214499/,如需轉載,請註明出處,否則將追究法律責任。

相關文章