深度學習中向量化的意義

2021-09-29 20:16:36 字數 1198 閱讀 9340

向量化就是要去除**中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軟體進行編輯。光柵資料檔案轉化為向量資...