caffe 資料層(lmdb資料來源)引數配置
layer { name: "my_data" type: "Data" top: "data" top: "label" include { phase: TRAIN } transform_param { mean_file: "/home/hanwannan/mean.binaryproto" scale: 0.00390625 mirror: 1 # 1表示開啟資料增強,0表示關閉,也可用ture和false來表示 # 剪裁一個 32*32的圖塊,在訓練階段隨機剪裁,在測試階段從中間裁剪 crop_size: 32 } data_param { source: "/home/hanwannan/train_lmdb" batch_size: 128 backend: LMDB } }
name: 表示該層的名稱,可隨意取
type: 層型別,如果是Data,表示資料來源於LevelDB或LMDB。根據資料的來源不同,資料層的型別也不同。
top或bottom: 每一層用bottom來輸入資料,用top來輸出資料。如果只有top沒有bottom,則此層只有輸出,沒有輸入。反之亦然。如果有多個 top或多個bottom,表示有多個blobs資料的輸入和輸出。
data 與 label: 在資料層中,至少有一個命名為data的top。如果有第二個top,一般命名為label。 這種(data,label)配對是分類模型所必需的。
include
Transformations:
資料的預處理,可以將資料變換到定義的範圍內。
scale : 0.00390625,實際上就是1.0/256, 即將輸入資料由0-255歸一化到0-1之間
mean_file : 均值檔案(如何生成後續會發程式碼)
mirror: 1 1表示開啟資料增強,0表示關閉,也可用ture和false來表示
crop_size: 32# 剪裁一個 32*32的圖塊,在訓練階段隨機剪裁,在測試階段從中間裁剪
data_param引數就是根據資料的來源不同,來進行不同的設定。
資料來自於資料庫如LMDB的引數配置
必選引數:
source: 資料集路徑,如/home/hanwannan/train_lmdb(後續會發表lmdb資料集製作方法)
batch_size: 每次處理的資料個數,如128
可選的引數:
rand_skip: 在開始的時候,路過某個資料的輸入。通常對非同步的SGD很有用。
backend: 選擇是採用LevelDB還是LMDB, 預設是LevelDB.