Ошибка при попытке вычесть: не удалось передать операнды вместе с фигурами (2,) (2,3) - PullRequest
0 голосов
/ 13 марта 2020

я получил ошибку при попытке запустить мой код ниже:

def h(x):
    global w
    return sum(np.transpose(w)*x)
    raise NotImplementedError()

def cost_func_linreg(X, y):
    m = len(y)

    for i in range(1, m+1):
        X_i = np.power(X, i)
        c= np.sum(np.square(h(X_i) - y))
    return (1/(2*m))*c
    raise NotImplementedError()

он работает нормально, если ввод ниже:

w, X, y = [-1, 0], [[1,1],[0,1]], [-1,0]

но я получил ошибку, когда ввод ниже:

w, X, y = [1, 1, 2], [[1,1,1],[0,0,0]], [0,0]
cost_func_linreg(X,y)

возвращает ошибку:

ValueError: operands could not be broadcast together with shapes (3,) (2,) 

указывает на ошибку по адресу:

----> 9         c= np.sum(np.square(h(X_i) - y))

1 Ответ

1 голос
/ 13 марта 2020

Не совсем понятно, что вы хотите получить в результате, но попробуйте заменить sum на np.sum через ч (х):

def h(x):
    global w
    return np.sum(np.transpose(w)*x)

По крайней мере, это не дает ошибки: )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...