日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Deep Learning---caffe模型参数量(weights)计算

發布時間:2024/9/21 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Deep Learning---caffe模型参数量(weights)计算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Draw_convnet

這幅圖是通過開源的工具draw_convnet(https://github.com/gwding/draw_convnet)生成的。在清楚整個前向計算網絡中的每一個層的輸入輸出以及參數設置后可以自己手動畫出計算圖出來,對于參數量計算就很直觀了。

feature map大小計算

輸入:N0*C0*H0*W0 輸出:N1*C1*H1*W1 輸出的feature map大小: H1=(H0+2×pad?kernel_size) / stride+1 W1=(W0+2×pad?kernel_size) / stride+1 當輸入的H0 == W0時,公式可以簡化為: H1=W1=(h + 2xpad - kernel_size) / stride + 1 注:當stride為1時,若pad=(kernel_size?1) / 2,那么經過計算后的feature map大小不變

以LeNet-5為例

下面是一個多通道圖像的輸入LeNet-5網絡前向計算模擬圖:

  • 網狀立體格子表示kernel,其他顏色方圖表示feature map(Input表示輸入層,可以看做特殊的feature map)
  • 一個kernel對應一個feature map
  • 參數量主要為kernel大小
  • 每個kernel帶一個bias

整個網絡占據權重的為Convolution/Innerproduct 兩層,分別計算參數量為,:

C1: 5 x 5 x 20 = 500,5x5卷積核, 20個feature map輸出,20個kernel C2: 20x 5 x 5 x 50 = 25000 ,20維度輸入,則20x5x5 kernel,50個feature map輸出,即相當于20通道的圖像輸入,則需要20x5x5的kernel來卷積乘,50個這樣的卷積核操作得到50個feature map,50個kernel F1: 50x4x4x500 = 400000,50維度特征圖輸入,全連接,每個點做卷積乘,則kernel大小為50x4x4,共500個feature map輸出,500個kernel F2 : 500x1x1x10 = 5000,500維度特征圖輸入,全連接,kernel大小為500x1x1,共10個feature map輸出,10個kernel

用4bytes的float類型來存儲參數,則總的參數量大小為:

500 + 25000 + 400000 + 5000 + (20 + 50 + 500 + 10) = 431080

字節數為:

431080 x 4 = 1724320 ≈ 1683.90625kb ≈ 1.64M

對比實際LeNet-5網絡基于caffe訓練出來的模型大小為:1.64 MB (1,725,025 字節),基本接近,因為模型中可能還帶有附加特性參數。

參考資料:

http://blog.csdn.net/cheese_pop/article/details/51955915
http://timdettmers.com/2015/03/26/convolution-deep-learning/

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Deep Learning---caffe模型参数量(weights)计算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。