Я пишу функцию, которая выдает стоимость и градиенты в качестве выходных данных, когда входными данными являются матрица признаков (X), метки ответа (y) и вектор параметров (тета). Я пишу векторизованную форму вместо использования циклов. В последней строке функции я собираюсь получить все градиенты в одном векторе (град), выполнив показанную матричную операцию. Однако в этой строке я получаю синтаксическую ошибку. Как преодолеть эту проблему? Код указан ниже:
def sigmoid(X):
return 1/(1+np.exp(-X))
def costFunction(theta, X, y):
#J=0
m = y.size
#grad = np.zeros(theta.shape)
z = sigmoid(np.dot(X,theta))
J = (1/m)*(-(np.dot(y.T,np.log(z)))-(np.dot((np.ones(m)-y).T,np.log(np.ones(m)-z))) #cost funct
grad = (np.dot(X.T,z-y)) #problematic line of code
return J, grad