問題描述:
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...