卷積神經網路時間和空間複雜度分析

2021-08-19 01:39:32 字數 640 閱讀 7513

在深度學習的發展過程中,有意無意中,很多創新點都與改善模型計算複雜度密切相關。

因而,本文對cnn的時間和空間複雜度做以分析。

首先,明確下flops和flops的區別:

卷積層:

ci=input channel, k=kernel size, hw=output feature map size, co=output channel.

2是因為乙個mac算2個operations。

不考慮bias時有-1,有bias時沒有-1。

上面針對乙個input feature map,沒考慮batch size。

理解上面這個公式分兩步,括號內是第一步,計算出output feature map的乙個pixel,然後再乘以hwco拓展到整個output feature map。括號內的部分又可以分為兩步,

全聯接層:

i=input neuron numbers, o=output neuron numbers.

2是因為乙個mac算2個operations。

不考慮bias時有-1,有bias時沒有-1。

分析同理,括號內是乙個輸出神經元的計算量,拓展到o了輸出神經元。

神經網路時間複雜度

拿乙個簡單的三層bp神經網路來說好了,假設每層神經元數量分別為n1,n2,n3。拿乙個樣本 n1 1 進行前饋計算,那麼就要進行兩次矩陣運算,兩次矩陣乘法 實際上是向量和矩陣相乘 分別要進行n1 n2 和 n2 n3次計算,由於輸入層和最終輸出層結點數量 n1和n3 是確定的,所以可以視為常量,中間...

時間複雜度和空間複雜度

同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。乙個演算法的評價主要從時間複雜度和空間複雜度來考慮。1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能...

時間複雜度和空間複雜度

1 時間複雜度 1 時間頻度乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多...