caffe讀取多標籤的lmdb資料

2022-01-31 19:27:00 字數 1056 閱讀 8036

問題描述:

lmdb檔案支援資料+標籤的形式,但是卻只能寫入乙個標籤,引入多標籤的解決方法有很多,這兒詳細說一下我的辦法:製作多個data資料,分別加入乙個標籤。我的方法只適用於標籤數量較少的情況,標籤數量比較多的話建議修改原始碼支援。下面介紹詳細步驟。以下均以兩個標籤作為介紹。

生成兩個含單標籤的list:

img1 0img2 0img3 1img4 1

img1 10img2 11img3 10img4 11

按照同一順序做shuffle處理,caffe訓練資料shuffle處理是有必要的,雖然caffe的lmdb轉換工具能夠直接做shuffle,但是不能保證兩個list的順序一致。文字按行亂序的命令可以參考處理後的檔案如下:

img1 0img3 1img4 1img2 0

img1 10img3 10img4 11img2 11

接下來就可以對他們生成兩個lmdb了,值得注意的是如果影象資料較大,生成lmdb時可以將第二個list的影象resize到1*1,如下(前面已經shuffle,這裡不再加入shuffle引數):

pathtocaffe/build/tools/convert_imageset --resize_height=256 --resize_width=256 ""

list1 lmdb_data_1

pathtocaffe/build/tools/convert_imageset --resize_height=1 --resize_width=1 "" list2 lmdb_data_2

name: "

caffenet

"layer

transform_param

data_param

}layer

data_param

}#將data_nousedresize到1位,防止caffe輸出過多內容

layer

}

【完】

Caffe實現多標籤分類

任務 我這裡給出乙個具體的任務咯,要求在以下中,識別出汽車品牌和車輛外形。汽車品牌分為 benz bmw audi 車輛外形分為 sedan suv。這是乙個只有72張的小資料庫,包括了測試和訓練集 這裡寫描述 我們這裡採用的是上述文章中薛大牛的方法,兩個data層,乙個data只放,另乙個data...

caffe實現多標籤分類

std ifstream infile argv 2 std vector lines std string filename std string label count string argv 5 int label count std atoi label count string.c str...

生成caffe所用的lmdb資料

本文只介紹在caffe框架下生成lmdb格式的資料,因為在caffe框架下訓練和測試都只能用lmdb格式的資料 準備 1 ubuntu 18.04 2 新建data資料夾,內含train和test兩個資料夾 3 train資料夾和test資料夾裡面分別含img和xml兩個資料夾,裡面分別是原影象 j...