windows下caffe之訓練mnist

2021-07-16 17:28:03 字數 1712 閱讀 1359

一、參考資料

悠望南山

--caffe

學習筆記(一)

caffe_example

之訓練mnist

二、訓練所需要用到的檔案

1.mnist_test_lmdb  (測試資料集,裡面包括data.mdb和lock.mdb)

2.mnist_train_lmdb (訓練資料集,裡面包括data.mdb和lock.mdb)

3.lenet_train_test.prototxt  (訓練和測試所用到的net模型資料,包括各種layer,如卷積層conv,取樣層也即池化層pool,全連線層ip,非線性層relu,損失層loss。資料以blob形式在各個層中傳遞)

4.lenet_solver.prototxt(此檔案指定了訓練中所需要的引數,即訓練超引數。包括迭代次數,網路學習速率、衝量,最大迭代次數等,最重要的是caffe的求解模式的設定,需要在此設定是採用cpu還是gpu模式)

5.train_lenet.sh(此檔案中存放進行訓練的命令)

截圖如下:

三、訓練準備工作

我是依照悠望南山部落格中所說的方法,在caffe.exe檔案所在的資料夾下新建乙個資料夾,命名為example。caffe.exe檔案一般在caffe\build\x64\debug或者caffe\build\x64\release資料夾下,視個人在編譯caffe時所選用的編譯模式。將caffe\examples\mnist資料夾下的兩個lmdb資料資料夾拷貝到剛才新建的資料夾下,同時在mnist資料夾下尋找其他三個之前提到的檔案並拷貝到新建的資料夾下。

現在開始修改.prototxt檔案。

首先開啟lenet_train_test.prototxt檔案,安裝下圖所示的方法進行修改即可。

然後開啟lenet_solver.prototxt檔案,進行設定,同樣要設定路徑問題,並且在檔案最後一行需要把caffe-mode修改為自己需要的模式。

補充說明一下,.caffemodel檔案是訓練得到的模型權值檔案,在測試階段會用到。.solverstate檔案是訓練狀態檔案。這兩個檔案在windows下一般無法開啟,都是protobuffer二進位制格式檔案。

caffe.exe train --solver=example/lenet_solver.prototxt
四、開始訓練

雙擊train_lenet.bat檔案,不出意外即可順利執行。接下來只需等待即可,訓練結束後視窗會自動關閉,無法檢視log資訊即訓練的詳細過程資訊。如果有這方面的需要,可以在train_lenet.bat檔案的末尾另起一行輸入 sleep 60 即可,表示在執行結束後視窗會等待60秒後關閉。最後可以在example資料夾下看到訓練結果,即下圖所示的四個檔案:

五、總結與補充

將所有需要的資料拷貝到單獨新建的資料夾下是為了不修改原始資料個檔案,但這樣也相應的增加了操作,降低了效率。按照本文各種操作的原理,如果不拷貝各種檔案到其他資料夾下的話,.prototxt檔案路徑應該是不需要修改的,只需要在lenet_solver.prototxt最後一行選擇自己需要的caffe:mode。然後在train_lenet.sh檔案中輸入caffe.exe檔案的絕對路徑,並將此檔案格式改為bat雙擊執行即可。

訓練過程總體來說較為順利,按照操作來就沒有什麼問題。測試過程還沒有進行,之後可能會再寫乙個部落格吧,看時間了。

在windows下配置caffe

安裝環境 win7 64bit vs2012 安裝步驟 安裝 cuda6.5 3.解壓caffe原始碼,解壓dependency,分別將dependency根資料夾內三個資料夾的內容分別解壓到caffe中對應的資料夾內 4.執行 bulid mainbulider.sln,將vs的生成物件設定為64...

關於Windows下安裝caffe

目前只為練手,因此只用cpu練習。配環境。等cpu上面熟練了再練習安裝cuda。先說目前遇到的bug。2.我用的visual studio2013 ultimate版本。3.進入解壓的caffe master commonsettings.props.example重名名為commonsetting...

windows下caffe中python介面的編譯

最近研究fcn時需要編譯caffe的python介面。折騰了好幾天,遇到了不少問題,總結下吧,以後說不定還會遇到。問題1 編譯時遇到 errorc1905 前端和後端不相容 必須以同一處理器為目標 分析 這個是要要編譯win32的平台,卻呼叫了x64的庫造成的。我的windows是64位,裝的pyt...