猿问

形状未在渐变下降中对齐

我试图通过计算函数中的值来获得梯度下降。并在我的代码中出错


def gradient_descent(X, y, theta, alpha, num_iters):

m = len(y)

cost_history = np.zeros(num_iters)

theta_history = np.zeros((num_iters,2))


for i in range(num_iters):

    prediction = np.reshape(np.dot(np.transpose(theta), X),97)

    theta = theta -(1/m)*alpha*( X.T.dot((prediction - y)))

    theta_history[i,:] =theta.T

    J_history[i]  = cal_cost(theta,X,y)


return theta, J_history



"""Args

----

X (numpy mxn array) - The example inputs, first column is expected

   to be all 1's.

y (numpy m array) - A vector of the correct outputs of length m

theta (numpy nx1 array) - An array of the set of theta parameters

   to evaluate

alpha (float) - The learning rate to use for the iterative gradient

   descent

num_iters (int) - The number of gradient descent iterations to perform


Returns

-------

theta (numpy nx1 array) - The final theta parameters discovered after

    out gradient descent.

J_history (numpy num_itersx1 array) - A history of the calculated

    cost for each iteration of our descent.

"""

以下是我传递给函数和变量的参数


theta = np.zeros( (2, 1) )

iterations = 1500;

alpha = 0.01

theta, J = gradient_descent(X, y, theta, alpha, iterations)

错误信息是:


ValueError:形状(97,2)和(97,)未对齐:2(dim 1)!= 97(dim 0)


牛魔王的故事
浏览 117回答 1
1回答

大话西游666

我不确定你在哪里得到 ValueError,但形状为 (97,) 的 ndarray 需要np.expand_dims在其上运行,如下所示:np.expand_dims(vector, axis=-1)这将使向量具有形状 (97,1),因此它应该被对齐/能够被广播。
随时随地看视频慕课网APP

相关分类

Python
我要回答