1 caffe::set_mode(caffe::gpu);
1 name: "dummy-net"2
3 layers
45 layers
67 layers
8 layers
1 name:"conv1"2
type:convolution
3 bottom:"
data
"4 top:"
conv1"5
convolution_param
12 }
1 影象數量n * 通道k * 影象高度h * 影象寬度w
1//假定資料在 假定資料在 cpu上進行初始化,我們有乙個blob
2const dtype*foo;
3 dtype*bar;
4 foo = blob.gpu_data(); //
資料從cpu複製到 複製到 gpu
5 foo = blob.cpu_data(); //
沒有資料複製,兩者都最新的內容
6 bar = blob.mutable_gpu_data(); //
沒有資料複製7//
... 一些操作 ...
8 bar = blob.mutable_gpu_data(); //
仍在gpu,沒有資料複製
9 foo = blob.cpu_data(); //
由於gpu修改了數值,資料從gpu複製到 cpu
10 foo = blob.gpu_data(); //
沒有資料複製,兩者都最新的內容
11 bar = blob.mutable_cpu_data(); //
依舊沒有資料複製
12 bar = blob.mutable_gpu_data(); //
資料從cpu複製到gpu
13 bar = blob.mutable_cpu_data(); //
資料從gpu複製到cpu
11. ####訓練樣本###23
總共:121368個
4 batch_szie:256
5 將所有樣本處理完一次(稱為一代,即epoch)需要:121368/256=475
次迭代才能完成
6所以這裡將test_interval設定為475,即處理完一次所有的訓練資料後,才去進行測試。所以這個數要大於等於475.
7如果想訓練100代,則最大迭代次數為47500;82
. ####測試樣本###
9同理,如果有1000個測試樣本,batch_size為25,那麼需要40次才能完整的測試一次。 所以test_iter為40;這個數要大於等於40.103
. ####學習率###
11 學習率變化規律我們設定為隨著迭代次數的增加,慢慢變低。總共迭代47500次,我們將變化5次,所以stepsize設定為47500/5=9500
,即每迭代9500次,我們就降低一次學習率。
1213
####引數含義#############
1415 net: "
examples/aaa/train_val.prototxt
"#訓練或者測試配置檔案
16 test_iter: 40
#完成一次測試需要的迭代次數
17 test_interval: 475
#測試間隔
18 base_lr: 0.01
#基礎學習率
19 lr_policy: "
step
"#學習率變化規律
20 gamma: 0.1
#學習率變化指數
21 stepsize: 9500
#學習率變化頻率
22 display: 20
#螢幕顯示間隔
23 max_iter: 47500
#最大迭代次數
24 momentum: 0.9
#動量25 weight_decay: 0.0005
#權重衰減
26 snapshot: 5000
#儲存模型間隔
27 snapshot_prefix: "
models/a1/caffenet_train
"#儲存模型的字首
28solver_mode: gpu #是否使用gpu
2930 stepsize不能太小,如果太小會導致學習率再後來越來越小,達不到充分收斂的效果。
losslayer類:定義於loss_layers.hpp中,其派生類會產生loss,只有這些層能夠產生loss。
資料層:定義於data_layer.hpp中,作為網路的最底層,主要實現資料格式的轉換。
特徵表達層(我自己分的類):定義於vision_layers.hpp,實現特徵表達功能,更具體地說包含卷積操作,pooling操作,他們基本都會產生新的記憶體占用(pooling相對較小)。
網路連線層和啟用函式(我自己分的類):定義於common_layers.hpp,caffe提供了單個層與多個層的連線,並在這個標頭檔案中宣告。這裡還包括了常用的全連線層innerproductlayer類。
1layers
當神已無能為力,那便是魔渡眾生
深度學習系列3 框架caffe
caffe是賈揚清大神開發的一套系統,caffe2是重構後的版本。其基本結構為 import numpy as np import time from caffe2.python import core,workspace from caffe2.proto import caffe2 pb2 x ...
深度學習框架caffe訓練過程
1.資料準備 2.生成訓練資料和測試資料的label,生成 3.生成訓練資料和測試資料對應的lmdb build tools convert imageset shuffle true backend lmdb data cigarettetrain20170413 data cigarettetr...
缺乏支援!Caffe深度學習框架未來堪憂
文章講的是缺乏支援!caffe深度學習框架未來堪憂,caffe是乙個由表示式,速度和模組化組成的深度學習框架。其優勢在於caffe的模型和優化是通過沒有硬編碼的配置來定義的,以及在gpu機器上設定了乙個flag以方便在cpu和gpu之間切換,然後部署到集群或移動裝置上。與此同時,隨著我們進入2017...