Python循环 - 随机与批量循环,以及为什么它需要太长时间?

时间:2013-01-26 16:28:55

标签: python loops numpy

循环1 :(随机 - 预期更快)

 for i in range(len(data)):
        x = data[i]
        for t in range(0, m):
            theta[t] -= my_lambda * (np.dot(theta, x) - y[i]) * x[t]

vs Loop 2 :(批量 - 预计更慢)

for t in range(0, m):
        temp = 0
        for i in range(len(data)):
            x = data[i]
            temp += (np.dot(theta, x) - y[i]) * x[t]
        theta[t] = theta[t] - my_lambda * temp / M

但我的批次要快得多 - 一次迭代经过时间0.025356054306 vs我的随机性真的很慢 - 一次迭代经过时间1.0576338768

这里我的m是13,数据大约是500个元组。 谁能告诉我为什么这样?或者我在哪里陷入随机性? 谢谢!

编辑1:

data = [[], [], ...]
data = [record1, record2 ...]
record = [1, x1, x2, ... , x_m]

theta is vector
theta = np.zeros(m+1) //np is numpy

0 个答案:

没有答案