Windows环境下使用 Caffe在ImageNet上训练网络
在配置好Windows版的Caffe之后,可以使用Windows Caffe訓練ImageNet網絡,主要有4個步驟:
(1)準備圖片數據庫
(2)將圖片數據轉換為Caffe可以使用的LMDB或者LevelDB類型
(3)取數據庫均值
(4)開始用Caffe訓練網絡
1 準備圖片數據庫
可以從網上找到ImageNet的數據,選擇幾個圖片類別下載下來。我是從ilsvrc2012的數據中找了幾個類別。我找到的數據庫是這樣的:
上面每個文件中都是如下的一堆圖片:
任意選擇幾個類別作為訓練數據。我選了如下的三類。每個類別中有1300張圖片,在每個類別中抽取100張圖片作為驗證集,余下的1200張作為訓練集。將訓練集和驗證集存儲在相應的路徑下。
運行如下兩個matlab腳本(腳本來自“http://blog.csdn.net/u013657981/article/details/49497753”),可以生成制作數據庫所需要的train.txt和val.txt。
clear all clc foodDir='F:\caffe-windows\data\ilsvrc12\train'; numClasses=3 classes=dir(foodDir) classes = classes([classes.isdir]) ; classes = {classes(3:numClasses+2).name} imageName={}; fp = fopen('train.txt','a'); for ci = 1:length(classes)ims = dir(fullfile(foodDir, classes{ci}, '*.JPEG')) for ii=1:length(ims)fprintf(fp,classes{ci});fprintf(fp,'/');fprintf(fp,ims(ii).name);fprintf(fp,' ');fprintf(fp,'%d',ci);fprintf(fp,'\r\n');end end fclose(fp);然后把生成的train.txt和val.txt拷貝到合適的路徑下以備使用(我是把它們拷貝到了F:\caffe-windows\data\ilsvrc12 路徑下)。兩個文件內容如下所示。
2 生成數據庫
數據庫可以選擇LMDB或者LevelDB兩種類型。
使用如下批處理命令,可以實現訓練集的轉化,生成LMDB數據庫。
F:\caffe-windows\Build\x64\Release\convert_imageset.exe --resize_height=256 --resize_width=256 --shuffle --backend="lmdb" F:\caffe-windows\data\ilsvrc12\train\ F:\caffe-windows\data\ilsvrc12\train.txt F:\caffe-windows\examples\imagenet\ilsvrc12_train_lmdb Pause在使用如下命令,可以實現驗證集的數據庫轉化。
F:\caffe-windows\Build\x64\Release\convert_imageset.exe --resize_height=256 --resize_width=256 --shuffle --backend="lmdb" F:\caffe-windows\data\ilsvrc12\val\ F:\caffe-windows\data\ilsvrc12\val.txt F:\caffe-windows\examples\imagenet\ilsvrc12_val_lmdb Pause
3 數據庫均值
F:\caffe-windows\Build\x64\Release\compute_image_mean.exe --backend="lmdb" F:\caffe-windows\examples\imagenet\ilsvrc12_train_lmdb F:\caffe-windows\examples\imagenet\train_mean.binaryproto Pause4 訓練網絡
我們采用的是caffe自帶的一些網絡,一些參數如下,有些我們可以根據自己的需要修改。比如,我將最大迭代次數改為了30000?!?span style="font-size:14px;">train_val.prototxt”文件位于F:\caffe-windows\models\bvlc_alexnet 路徑中(我的caffe的根目錄是F:\caffe-windows)。
在同一個目錄下還有文件“solver.prototxt”。網絡結構參數中,要把數據庫文件和均值文件路徑寫對。用了相對路徑的地方,默認是從caffe的根目錄執行。
由于上面文件中有的參數使用了相對路徑,所以我們需要打開Windows命令行窗口,cd到caffe的根目錄,執行以下命令:
F:\caffe-windows\Build\x64\Release\caffe.exe train --solver=F:\caffe-windows\models\bvlc_alexnet\solver.prototxt pause
或者把它寫到一個批處理文件中,在caffe根目錄下執行該文件。運行中截圖如下:
運行完成后截圖如下。在使用了GPU的前提下,我的電腦總共花了2個半小時來完成這個任務。
轉載于:https://www.cnblogs.com/yanhuiqingkong/p/7770057.html
總結
以上是生活随笔為你收集整理的Windows环境下使用 Caffe在ImageNet上训练网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文字两边的横线实现
- 下一篇: C# HTTP请求后对gzip页面实现解