Caffe深度學習計算框架

2021-09-21 02:38:01 字數 2763 閱讀 5378

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

1

1. ####訓練樣本###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類

1

layers

當神已無能為力,那便是魔渡眾生

深度學習系列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...