向量化就是要去除**中for迴圈,這就需要用到矩陣,python是可以直接進行矩陣計算的,c語言就不行,我以前在使用matlab時候就覺得matlab非常強大,就是因為其矩陣計算能力,而且matlab名字就叫矩陣實驗室。但可惜matlab是收費軟體,在接觸到python以後發現,python在實現方法上有很多與matlab相似的地方,比如在矩陣計算這方面,而且還是免費開源的。我覺得矩陣計算能力和開源是python能被深度學習研究者逐漸到完全接受最根本的原因。
for迴圈計算和矩陣計算有什麼區別,乙個是序列計算,乙個是平行計算。cpu和gpu都有並行化的能力,如果用for迴圈,相當於放棄使用這種功能。而gpu和cpu並行化計算的能力不一樣。gpu為什麼強,我沒有查閱資料,但是我的理解是gpu開始是做圖形處理器的,需要做大量類似的運算。而cpu需要做各種複雜運算。而矩陣運算就是大量的的類似運算,這個應該就是gpu比cpu快的原因。
import numpy as np
a = np.array([1
,2,3
,4])
print
(a)import time
a = np.random.rand(
1000000
)b = np.random.rand(
1000000
)tic = time.time(
)c = np.dot(a,b)
toc = time.time(
)print
("vectorized version:"
+str
(1000
*(toc-tic))+
"ms"
)c =
0tic = time.time(
)for i in
range
(1000000):
c += a[i]
*b[i]
toc = time.time(
)print
("vectorized version:"
+str
(1000
*(toc-tic))+
"ms"
)
結果是
vectorized version:
6.000041961669922ms
for loop:
386.0001564025879ms
機器學習 向量化
向量化 傳統累加運算 實現 import time import numpy as np 定義兩組向量 vector1 np.random.rand 100000 vector2 np.random.rand 100000 使用向量化 start time time.time 開始時間 res np...
吳恩達深度學習 2 11 向量化
向量化通常是消除 中顯式for迴圈語句的藝術,在深度學習安全領域 深度學習 練習中,經常發現在訓練大資料集時,深度學習演算法表現才更加優越,所以 執行得非常快非常重要。否則如果執行在乙個大資料集上,可能花費很長時間去執行,這將要等待非常長的時間去得到結果。所以在深度學習領域,向量化是乙個關鍵的技巧。...
光柵的向量化
光柵資料檔案描述的是畫素,即乙個個的點。檔案的大小與解析度有相當大的關係。相同幅面圖紙形成的光柵檔案大小相等。向量 vector 資料檔案描述的是圖形單元,如一根直線 乙個圓等。檔案大小只與圖形單元的多少和複雜程度有關,而與圖紙幅面無直接關係。可直接用現有cad軟體進行編輯。光柵資料檔案轉化為向量資...