Caffe代碼學習
1. cifar10_quick_solver.prototxt:方案配置,用於配置迭代次數等信息,訓練時直接調用caffe train指定這個文件,就會開始訓練
2. cifar10_quick_train_test.prototxt:訓練網絡配置,用來設置訓練用的網絡,這個文件的名字會solver. prototxt裏指定
3. cifar10_quick_iter_4000.caffemodel.h5:訓練出來的模型,後面就用這個模型來做分類
4. cifar10_quick_iter_4000.solverstate.h5:也是訓練出來的,應該是用來中斷後繼續訓練用的文件
5. cifar10_quick.prototxt:分類用的網絡
模型描述在examples/cifar10/cifar10_quick_solver.prototxt和examples/cifar10/cifar10_quick_train_test.prototxt中。
模型訓練時執行train_quick.sh
1. caffe/examples/minst/lenet_train_test.prototxt是lenet的網絡模型
2. mnist/lenet_solver.prototxt是用來訓練/預測網絡描述文件,就是定義訓練中的參數
3. blob的4維作用是用來儲存和交換數據。維度從低到高位(width_, height_, channels_, num_), width_和height_表示圖像的寬和高度,channels_表示顏色通道RGB,num_表示第幾幀,用於儲存數據或權值(data)和權值增量(diff),在進行網絡計算時,每層的輸入,輸出都需要通過Blob對象緩衝。Blob是Caffe的基本存儲單元。
4. 注意到Caffe類中成員變量名都帶有後綴“_”
5. 先看proto, blob,在layer,再看net,看代碼的順序
根據net中在看layer中的代碼,
做創新點可以修改網絡結構可以改proto,也可以自己設計網絡結構在layer中,但是需要在proto中添加,在看net時可以參考pooing和卷積