在caffe上跑自己的資料

2021-07-04 16:44:38 字數 2362 閱讀 2187



本文介紹如何使用

caffe

對自己的影象資料進行分類。 1

資料庫準備

由於資料收集比較費時,為了簡單說明,我用了兩類,

dog和

bird

,每種約

300張。

train200

張,val100張。

新建乙個資料夾

mine

,放自己的資料,在

mine

資料夾下新建

train

和val

資料夾,

train

資料夾下新建

bird

和dog

兩個資料夾分別存放

200張

bird

和200

張dog

,val

資料夾裡存放其他的用於驗證。注意,的

size

要歸一到相同尺寸。(

256*256)

2 轉換成leveldb格式

在mine

資料夾下新建兩個

txt檔案:

train.txt

和val.txt

,列出對應名及其標籤。

資料量較少的可以手動標籤,資料量較大的話,可以寫批處理命令,比較方便。

一定要注意,train列表中的帶相對路徑名bird/*.jpg  dog/*.jpg。標籤1代表bird,標籤2代表dog。

生成列表後,編譯convert_imageset.cpp.

在bin資料夾中將剛剛生成的maincaller.exe重新命名為convert_imageset.exe。做乙個批處理命令將資料轉換成leveldb格式。

在caffe-windows資料夾下新建convertimage2ldb.bat。

雙擊執行,在mine資料夾下就會出現mtrainldb資料夾。

同理可得到mvalldb。這兩個就是caffe需要的資料。

注意,我的mine資料夾是放在data資料夾下的,在寫convertimage2ldb.bat時注意你自己路徑。

3 計算mean

這個比較簡單,上篇文章也說了。編譯comput_image_mean.cpp

在bin資料夾中將剛剛生成的maincaller.exe重新命名為comput_image_mean.exe。做乙個computemean.bat方便以後使用。

雙擊執行之後在mine裡面出現mimg_mean.binaryproto,這就是caffe需要的均值檔案。

4 訓練自己的網路

資料集和均值檔案都生成之後,訓練和前面兩篇文章類似。這次我直接使用的是imagenet的網路結構,幾乎沒怎麼修改,所以我將imagenet裡面的imagenet_train.prototxt、imagenet_val.prototxt、imagenet_solver.prototxt直接拷過來修改一下。

imagenet_val.prototxt、imagenet_train.prototxt裡面的

source: "mtrainldb"

mean_file:"mimg_mean.binaryproto"

batch_size: 10

還有最後一層的output改為2,因為我只有兩類。

imagenet_solver.prototxt裡面的網路引數修改:

注意最後加上solver_mode:gpu。

開始訓練:

5 實驗結果

由於資料量較小,訓練比較快。正確率最高能達到0.87。但是最後並不收斂,4500次迭代正確率時高時低。本文只是介紹方法,還有很多引數值得推敲。

在caffe上跑自己的資料

本文介紹如何使用 caffe 對自己的影象資料進行分類。1 資料庫準備 由於資料收集比較費時,為了簡單說明,我用了兩類,dog和 bird 每種約 300張。train200 張,val100張。新建乙個資料夾 mine 放自己的資料,在 mine 資料夾下新建 train 和val 資料夾,tra...

在caffe上跑自己的資料

本文介紹如何使用 caffe 對自己的影象資料進行分類。1 資料庫準備 由於資料收集比較費時,為了簡單說明,我用了兩類,dog和 bird 每種約 300張。train200 張,val100張。新建乙個資料夾 mine 放自己的資料,在 mine 資料夾下新建 train 和val 資料夾,tra...

caffe訓練自己的資料

本文介紹如何使用 caffe 對自己的影象資料進行分類。1 資料庫準備 由於資料收集比較費時,為了簡單說明,我用了兩類,dog和 bird 每種約 300張。train200 張,val100張。新建乙個資料夾 mine 放自己的資料,在 mine 資料夾下新建 train 和val 資料夾,tra...