模型大小 推理速度相關

2021-10-05 10:10:19 字數 1800 閱讀 5254

params量計算公式:(kh

∗kw∗

cin)

∗cou

t(k_h*k_w*c_in )*c_out

(kh​∗k

w​∗c

i​n)

∗co​

utflops計算公式:(kh

∗kw∗

cin∗

cout

)∗(h

out∗

wout

)(k_h*k_w*c_in*c_out )*(h_out*w_out)

(kh​∗k

w​∗c

i​n∗

co​u

t)∗(

ho​u

t∗wo

​ut)

其中k

hk_h

kh​和k

wk_w

kw​代表了kernel的input_size,cin

c_in

ci​n

是input feature map的channel數,cou

tc_out

co​u

t是output feature map的channel數, hou

t和wo

ut

h_out和w_out

ho​ut和

wo​u

t分別代表了output feature map的size。

params量計算公式:cin

∗cou

tc_in*c_out

ci​n∗c

o​ut

flops計算公式:cin

∗cou

tc_in*c_out

ci​n∗c

o​ut

flops: floating point operations per second.每秒的浮點運算次數。

madds: 即maccs(multiply-accumulate operations):先乘起來再加起來的運算次數。

例如:y=w

[0]∗

x[0]

+w[1

]∗x[

1]+w

[2]∗

x[2]

+...

+w[n

−1]∗

x[n−

1]

y = w[0]*x[0] + w[1]*x[1] + w[2]*x[2] + ...+ w[n-1]*x[n-1]

y=w[0]

∗x[0

]+w[

1]∗x

[1]+

w[2]

∗x[2

]+..

.+w[

n−1]

∗x[n

−1]w 和 x 都是向量,y 是標量。上式是全連線層或卷積層的典型運算。一次乘-加運算即一次乘法+一次加法運算,所以上式的 maccs 是n 。

不過可以看到,加法運算的次數並非 n 而是 n-1 。但考慮 maccs 時可以模擬演算法複雜度估算的 big-o ,即結果可以是近似的。

而換到 flops 的情況,點積做了 2n-1 flops,即 n-1 次加法和 n 次乘法。可以看到,maccs 大約是 flops 的一半。

乙個mflops(megaflops)等於每秒一百萬(=10^6)次的浮點運算

乙個gflops(gigaflops)等於每秒十億(=10^9)次的浮點運算

乙個tflops(teraflops)等於每秒一萬億(=10^12)次的浮點運算

深度學習網路模型的運算複雜度、空間占用和記憶體訪問情況計算

衡量模型的快慢不僅僅是參數量、計算量的多少,還有記憶體訪問的次數。

3模型大小 混合精度對模型訓練和推理的影響

計算機使用0 1來標識資訊,每個0或每個1代表乙個bit。資訊一般會以下面的三種形式表示 1 字串 字串的最小單元是char,每個char佔8個bit,也就是1個byte。比如字串 abc 這三個字元組成的串占用的儲存空間 儲存空間 1x3 3 bytes 24 bits 2 整數整數包括int4 ...

Apache POI Excel 速度相關

1.poi針對目前存在的兩種版本的excel有不同的實現方式.而對於相同版本的excel又分為dom解析和sax解析兩種.而這兩種在記憶體使用,效能各方面均有不同.2.03和07版xls區別?b.行數限制 07版 xssfworkbook 基於usermodel 公升級版 sxssfworkbook...

Pytorch網路訓練模型轉成C 推理執行

顯著性檢測網路模型是基於pytorch深度學習框架進行搭建並參與訓練的,在實際應用和生產中,由於要滿足低延遲和嚴格部署要求,通常選用c 來進行推理過程。這裡的顯著圖推理模型c 轉換過程主要由以下幾個步驟組成 將pytorch網路模型轉換為torch script,並序列化為乙個檔案 配置編譯執行環境...