向量化與for迴圈耗時對比 python實現

2021-08-08 21:23:23 字數 700 閱讀 7934

向量化與for迴圈耗時對比——python實現

深度學習中,可採用向量化替代for迴圈,優化耗時問題

對比例程如下,參考andrew ng的課程筆記

import time

import numpy as np

a = np.random.rand(1000000)

b = np.random.rand(1000000)

tic = time.time()

c = np.dot(a,b)

toc = time.time()

print(c)

print("vectorized version: " , str(1000*(toc-tic)) + "ms")

c = 0

tic1 = time.time()

for i in range(1000000):

c += a[i]*b[i]

toc1 = time.time()

print(c)

print("for loop version: " , str(1000*(toc1-tic1)) + "ms")

處理百萬資料,耗時相差400多倍。

效果圖:

python向量化與迴圈耗時對比及其原理

python向量化與迴圈耗時對比及其原理,向量化計算速度是迴圈的約為300倍。import time import numpy as np a np.random.rand 1000000 b np.random.rand 1000000 tic time.time c np.dot a,b toc...

向量化與正則化

向量化vectorization vectorization是使用矩陣計算來代替for迴圈,以簡化計算過程,提高效率。如上式,是乙個求和的過程,顯然需要乙個for語句迴圈m次,所以根本沒有完全的實現vectorization。下面介紹向量化的過程 約定訓練資料的矩陣形式如下,x的每一行為一條訓練樣本...

Numpy基礎 陣列與向量化計算

一 多維陣列 1 生成ndarray array函式 1 np.array import numpy as np data1 6,7.5,8,0,1 建立簡單的列表 print data1 arr1 np.array data1 將列表轉化為陣列 print arr1 2 ndarry的資料型別 1...