在實現sigmoid啟用函式的時候,有乙個exp(-x)的操作,這個函式是非常耗時的,但是在神經網路中一般權值是比較小的,那麼就有了這種快速計算演算法。
在神經網路中,當x比較小時,e
xe^x
ex,其中n可以取較大數,一般為2的整數冪次,比如取256,那麼後面的1+x
n1+\frac
1+nx
就相乘8次。如果取1024,需要乘以10次。這個極限和math.h的exp的精度比較為:
可以看到在資料不超過7~8的時候,函式的計算結果幾乎是一致的。
速度方面exp256是原始exp的360倍,exp1024是原始exp的330倍,相比之下exp1024比exp256 handle的範圍稍大。
inline float exp1(float x)
inline float exp2(double x)
exp 用法小結
expr用法 expr命令一般用於整數值,但也可用於字串。一般格式為 expr argument operator argument expr也是乙個手工命令列計數器。expr 10 10 20 expr 1500 900 2500 expr 30 3 10 expr 30 3 2 5 注意運算子左...
演算法 快速排序演算法
快速排序的思想是 選取乙個樞軸值,一趟排序後,將待排序列分成兩部分,左邊部分均不大於這個樞軸值,右邊部分均不小於這個樞軸值。然後再次對兩側進行快速排序,直至整個序列有序。例項 include stdio.h define maxsize 10 int data maxsize void swap i...
演算法 快速排序演算法
快速排序是由東尼 霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個專案要 n log n 次比較。在最壞狀況下則需要 n2 次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他 n log n 演算法更快,因為它的內部迴圈 inner loop 可以在大部分的架構上很有效率地被實現出來。...