"TypeError: 'numpy.ndarray' object is not callable " - Numpy Error
"TypeError: 'numpy.ndarray' object is not callable " - Numpy Error
这是我的代码。
def h(x, theta): # this is probability/hypotheses
return np.dot(x, theta)
def cost(x, y, theta): # this is cost function
m = x.shape[0]
hypothesis = h(x, theta)
error = hypothesis - y
return 1 / (2 * m) * (np.dot(error.T, error)) # (1/2m)*sum[(error)^2]
我有一个函数 "h",它计算 2 个矩阵的点积。它按预期工作。
我测试了它,这里是输出
print("x.shape = ", x.shape) # x.shape = (97, 2)
print("theta.shape =", theta.shape) # theta.shape = (2, 1)
print("my_hypothesis.shape =", my_hypothesis.shape) # my_hypothesis.shape = (97, 1)
但是当我从内部 "cost" 函数调用函数 "h" 时。
假设 = h(x, theta)
我收到错误:
TypeError: 'numpy.ndarray' object is not callable
如果我用 hypothesis = np.dot(x, theta) 替换线 hypothesis = h(x, theta) 那么它工作正常。
请问我做错了什么?
我已经解决了这个问题,我只是这个声明
return (alpha * (1 / m) * (np.dot(error.T, x))).T
下面是 link 的工作代码。
这是我的代码。
def h(x, theta): # this is probability/hypotheses
return np.dot(x, theta)
def cost(x, y, theta): # this is cost function
m = x.shape[0]
hypothesis = h(x, theta)
error = hypothesis - y
return 1 / (2 * m) * (np.dot(error.T, error)) # (1/2m)*sum[(error)^2]
我有一个函数 "h",它计算 2 个矩阵的点积。它按预期工作。 我测试了它,这里是输出
print("x.shape = ", x.shape) # x.shape = (97, 2)
print("theta.shape =", theta.shape) # theta.shape = (2, 1)
print("my_hypothesis.shape =", my_hypothesis.shape) # my_hypothesis.shape = (97, 1)
但是当我从内部 "cost" 函数调用函数 "h" 时。 假设 = h(x, theta) 我收到错误:
TypeError: 'numpy.ndarray' object is not callable
如果我用 hypothesis = np.dot(x, theta) 替换线 hypothesis = h(x, theta) 那么它工作正常。
请问我做错了什么?
我已经解决了这个问题,我只是这个声明
return (alpha * (1 / m) * (np.dot(error.T, x))).T
下面是 link 的工作代码。