Caffe進行深度訓練(理論篇)

2021-08-08 04:18:34 字數 2486 閱讀 1288

使用caffe框架進行深度學習訓練的流程如下:

1、資料預處理(建立資料庫)

2、網路結構與模型訓練的配置

3、訓練與再訓練

4、訓練日誌分析

5、**檢驗與分析

6、效能測試

下面分別來分析各個流程的處理過程:

1、資料預處理(建立資料庫)

2、網路結構與模型訓練的配置

caffe採用讀入配置檔案的方式進行訓練,其配置檔案一般由兩部分組成:solver.prototxt和net.prototxt(有時有多個net.prototxt),分別對應caffe系統架構中兩個十分關鍵的實體——求解器(solver)和網路結構(net)。

下面講解一下相對簡單的solver.prototxt檔案:

#網路配置的位置

net:

"examples/mnist/net.prototxt"

#要使用gpu進行訓練

solver_mode: gpu

#本次訓練共迭代5000次

max_iter:

5000

#測試每500輪跑一遍,一遍跑100個迭代

test_iter:

100test_interval:

500#每50次輸出一些資訊

display:

50#基礎的學習速率為0.01

base_lr:

0.01

lr_policy:

"step"

gamma:

0.1stepsize:

50000

#動量衰減率是0.9,正則項的權重是0.0005

momentum:

0.85

weight_decay:

0.0005

#每1000輪儲存一下進度

snapshot:

1000

snapshot_prefix:

"examples/mnist/net_train"

基本回答了以下幾個問題:

(1)網路檔案在哪

(2)用什麼計算資源訓練?cpu還是gpu?

(3)訓練多久?訓練和測試比例是如何安排的?什麼時候輸出一些東西?

(4)優化的學習速率怎麼設定?動量和正則的設定

(5)要時刻記得存檔,不然得從頭來過。

net.prototxt檔案說明

name: "lenet"           網路名

layer

transform_param

data_param

}layer

transform_param

data_param

}layer

param

convolution_param

bias_filler

}}layer

}layer

param

convolution_param

bias_filler

}}layer

}layer

param

inner_product_param

bias_filler

}}layer

layer

param

inner_product_param

bias_filler

}}layer

}layer

caffe提供了一套介面,net.prototxt檔案可通過寫**生成。

3、訓練與再訓練

準備好了資料,確定了訓練相關的配置,就可以正式訓練了。啟動訓練指令碼train_lenent.sh,經過一段時間的訓練,命令列產生了大量的日誌訓練過程也宣告結束,這時目錄中多了如下目錄:

net_train_iter_1000.caffemodel

net_train_iter_1000.solverstate

…… caffemodel檔案中儲存了caffe模型中的引數,solverstate檔案中儲存了訓練過程中的一些中間結果。

再訓練包含兩種模式:

(1)斷點訓練,solverstate中儲存了訓練的歷史資訊,這些資訊能夠幫助模型繼續訓練;

(2)遷移學習,這個模式會在之前訓練的基礎上,對模型結構做一定的修改,然後應用到其他模型中,這種模式稱為遷移學習。

4、訓練日誌分析

5、**檢驗與分析

模型完成訓練後,要對它的訓練表現做驗證,看它在其他測試資料上的正確性。除此之外,還可以將每一層的中間結果視覺化出來,進行分析。

6、效能測試

除了測試資料上的準確率,模型的執行時間也非常值得關心。

以上就是在caffe上訓練資料的整個過程。

參考《深度學習輕鬆學》

深度學習框架caffe訓練過程

1.資料準備 2.生成訓練資料和測試資料的label,生成 3.生成訓練資料和測試資料對應的lmdb build tools convert imageset shuffle true backend lmdb data cigarettetrain20170413 data cigarettetr...

caffe 進行卷積神經網路訓練的命令引數解析

因為在用imagenet訓練alexnet時,發現準確率不是很高,就想通過調參後從快照 snapshot 中恢復訓練 就查到了這篇詳細的訓練命令引數的文章,遂轉之,備查用 別人的部落格 caffe的執行提供三種介面 c 介面 命令列 python介面和matlab介面。本文先對命令列進行解析,後續會...

使用caffe訓練好的模型進行分類 官網教程

coding utf 8 import numpy as np import matplotlib.pyplot as plt matplotlib inline import sys reload sys sys.setdefaultencoding utf8 設定預設顯示引數 plt.rcpar...