使用caffe自帶的time命令計算每層消耗的時間

2021-09-20 07:26:58 字數 1346 閱讀 1424

在訓練backbone為mobilenet的模型的時候,發現訓練過程中每個迭代所需要的時間都很長,於是考慮使用測試工具測試每層所需要的時間,來排查原因.

其中caffe自帶的net_speed_benchmark工具已經被棄用了

deprecated. use caffe time --model=... "

"[--iterations=50] [--gpu] [--device_id=0]

被指明使用caffe的time指令來評估每層時間,如同上面的資訊,只需要乙個訓練網路的prototxt檔案,然後程式預設進行50個迭代的前傳反傳的計算,然後給出平均的每層所需的時間

這裡需要設定-gpu,否則預設是使用cpu計算的

第一次我沒加-gpu 0的引數,測試mobilenet的時間

平均下來每個forward-backward所需要的時間為2392.66 ms

發現是dwconv相關層的前傳和反傳所需要的時間都遠多於其他層,

conv4_1/3x3_dwconv   forward: 28.8052 ms.

conv4_1/3x3_dwconv backward: 59.1912 ms.

使用time --model=... -gpu 0之後,執行時間明顯提高了

iteration: 1 forward-backward time: 12859.3 ms.

iteration: 2 forward-backward time: 42.453 ms.

iteration: 3 forward-backward time: 41.3635 ms.

iteration: 4 forward-backward time: 39.9391 ms.

iteration: 5 forward-backward time: 39.9155 ms.

iteration: 6 forward-backward time: 40.8156 ms.

iteration: 7 forward-backward time: 40.0486 ms.

iteration: 8 forward-backward time: 38.0232 ms.

iteration: 9 forward-backward time: 38.5423 ms.

除了第乙個iteration消耗比較多的時間之外,後續的迭代都很快

conv4_1/3x3_dwconv   forward: 0.0745062 ms.

conv4_1/3x3_dwconv backward: 0.75477 ms.

caffe執行自帶的mnist

sh data mnist get mnist.sh但是這些檔案是不能夠直接使用的,因此 sh examples mnist create mnist.sh轉換為lmdb檔案,轉換之後會在examples mnist下面還是生成 mnist train lmdb mnist test lmdb 裡面...

使用Caffe自帶工具繪製loss曲線

修改訓練命令為 python solve.py 2 1 tee out.log用 caffe 自帶的指令碼繪製 loss 曲線 將 caffe tools extra目錄下的plot training log.py.example,extract seconds.py,parse log.sh,pa...

可替代VB自帶的Timer控制項的Timer類

宣告 魏滔序原創,轉貼請註明出處。用這個類可以替代vb自帶的timer控制項,這樣就不用在無窗體的專案中僅為了使用timer而多加乙個窗體了。我一般用在activex exe中用來分離系統控制權,用timer的好處是避免控制權死鎖,這樣也就模擬出了多執行緒 實際上是多程序 能給使用者更好的體驗。如下...