caffe网络模型各层详解(一)
一:數據層及參數
caffe層次有許多類型,比如Data,Covolution,Pooling,層次之間的數據流動是以blobs的方式進行
首先,我們介紹數據層:
數據層是每個模型的最底層,是模型的入口,通常數據的 預處理(如去均值,放大縮小,裁剪和鏡像等)也在這一層設置參數實現。
數據來源一般來自高效的數據庫(levelDb和LMDB),也可以來自內存,如果注重效率,可以來自磁盤的hdf5文件和圖片格式文件。
層次實例如下:
1 layer{ 2 name:"cifar" 3 type: "Data" 4 top: "data" 5 top: "label" 6 include{ 7 phase:TRAIN 8 } 9 transform_param{ 10 mean_file: "examples/cifar10/mean.binaryproto" 11 } 12 data_param{ 13 source: "examples/cifar10/cifar10_train_lmdb" 14 batch_size: 100 15 backend:LMDB 16 } 17 }?層次參數解釋:
name : 表示該層的名稱,可以隨意取
type : 層類型,如果是Data,表示數據來源于LevelDB或者LMDB。一般采用這兩種數據
top/bottom: 每一層用bottom來表述輸入數據,top表述輸出數據。如果只有top沒有bottom,則此層只有輸出沒有輸入,反之亦然。如果有多個top或bottom,表述有多個blobs數據的輸入和輸出。
data/label:在數據層中,至少有一個命名為data的top。如果兩個top,一般命名為label,(data,label)配對是分類模型所必須的。
include:一般訓練和測試的測試的時候,模型的層不一樣。include用以區(qū)分是train還是test,如果沒有include表述該層既做訓練也做測試。
Transformations:數據的預處理,可以對數據進行變換,scale為0.00390625,實際上是1/255,既數據的歸一化。
1 transform_param{ 2 scale = 0.00390625 3 mane_file_size: "examples/cifar10/mean.binaryproto" 4 //用一個配置文件來進行去均值操作 5 mirror:1 //1表示開啟鏡像,0表示關閉,也可以用true和false表示 6 //剪裁一個277*277的圖塊,在訓練階段隨機裁剪,在測試階段從中間剪裁 7 crop_size: 227 8 }轉載于:https://www.cnblogs.com/LaplaceAkuir/p/6252864.html
總結
以上是生活随笔為你收集整理的caffe网络模型各层详解(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决:xml文件单行注释、多行注释问题
- 下一篇: Android 循环滚动控件ViewFl