如何生成Solver配置檔案 caffe

2021-07-25 08:24:16 字數 2103 閱讀 5927

solver是caffe的核心,也被稱為優化器,在deeplearning中通常是沒有解析解的,我們只能通過優化的方案來求解,solver的主要作用就是交替呼叫前向傳播和後向傳播演算法來交替更新引數。

solver的流程:

1. 設計好優化的物件---編寫train.prototxt檔案

2. 通過forward來計算最終的輸出值,以及對應的loss

3. 通過backward計算每一層的梯度

4. 根據選用的solver演算法來利用梯度進行更新

5. 定期的評價測試訓練的網路

6. 記錄並儲存每一次迭代的學習率,快照,以及對應的狀態

如何寫solver檔案:

from caffe.proto import caffe_pb2

s = caffe_pb2.solverparameter()

path='/home/***/data/'

solver_file=path+'solver.prototxt' # solver檔案儲存位置

s.train_net = path+'train.prototxt' # 訓練配置檔案

s.test_interval = 782 # 測試間隔

s.max_iter = 78200 # 最大迭代次數

s.momentum = 0.9 # momentum係數

s.weight_decay = 5e-4 # 權值衰減係數

#學習率的設定在下面會詳細來講

s.base_lr = 0.001 # 基礎學習率

s.lr_policy = 'step' # 學習率衰減方法

s.stepsize=10000 # 此值僅對step方法有效

s.gamma = 0.1 # 學習率衰減指數

s.display = 782 # 螢幕日誌顯示間隔,如果為0則不顯示

s.snapshot = 7820 # 儲存模型的間隔

s.snapshot_prefix = 'model/snapshot' # 儲存在model資料夾下,檔名以snapshot開頭

s.type = 「sgd」 # 優化演算法

s.solver_mode = caffe_pb2.solverparameter.gpu # 設定計算方式

with open(solver_file, 'w') as f:

f.write(str(s))

學習率的設定。只要是梯度下降法來求解優化,都會有乙個學習率,也叫步長。base_lr用於設定基礎學習率,在迭代的過程中,可以對基礎學習率根據指定的策略進行調整,由lr_policy來設定。

lr_policy可以設定為下面這些值,相應的學習率的計算為:

- fixed:   

保持base_lr不變.

- step:    

如果設定為step,則還需要設定stepsize和gamma,返回 base_lr*gamma^(floor(iter/stepsize)),其中iter表示當前的迭代次數。

- exp:     

還需要設定gamma,返回base_lr*gamma^iter,iter為當前迭代次數

- inv:      

如果設定為inv,還需要設定power和gamma, 返回base_lr*(1+gamma*iter)^(-power)

- multistep:

- poly:     

學習率進行多項式誤差,返回 base_lr (1 - iter/max_iter) ^ (power)

- sigmoid: 

學習率進行sigmod衰減,返回 base_lr ( 1/(1 + exp(-gamma * (iter - stepsize))))

如何生成儲存器配置檔案?

在vivado的tools下選擇write memory configuration file,在介面下選擇生成的格式,選擇儲存器件型號以及需要寫入的bit流檔案等。寫儲存器配置檔案,對應的圖形介面如下 對應的tcl命令如下 write cfgmem format mcs size 128 inte...

GKeyFile生成配置檔案

linux中提供了功能強大的keyvalue資料格式,可用於生成更為靈活的配置檔案,下面的 例項演示了使用gkeyfile生成配置檔案,本例 使用了字串,布林值,整型值,雙精度值和字串列表等資料型別,將其寫入配置檔案中。include include int main int argc,char a...

模組 configparser 配置檔案生成修改

此模組用於生成和修改常見配置文件 1.來看乙個好多軟體的常見配置檔案格式如下 ini default serveraliveinterval 45 compression yes compressionlevel 9 forwardx11 yes bitbucket.org user hg tops...