3

我在 Numpy 中实现了这个梯度下降:

def gradientDescent(X, y, theta, alpha, iterations):
    m = len(y)

    for i in range(iterations):
        h = np.dot(X,theta)
        loss = h-y
        theta = theta - (alpha/m)*np.dot(X.T, loss) #update theta

    return theta

虽然代码的其他部分在这里完全矢量化,但仍有一个 for 循环在我看来是不可能消除的;特别要求在每一步更新 theta 我不知道如何对其进行矢量化或以更有效的方式编写它。

感谢您的帮助

4

1 回答 1

4

你不能向量化 for 循环,因为每次迭代都在更新状态。向量化主要用于当计算可以完成时,每次迭代都在计算一个独立的(在某种意义上)结果。

于 2014-10-06T15:20:02.793 回答