ValueError: matrices ne sont pas alignés

J'ai le code suivant:

dotp = np.dot(X[i], w)
mult = -Y[i] * dotp
lhs = Y[i] * X[i]
rhs = logistic(mult)
s += lhs * rhs

Et il me lance le message d'erreur suivant (tronqué pour des raisons de concision):

  File "/Users/leonsas/Projects/temp/learners/learners.py", line 26, in log_likelihood_grad
    s += lhs * rhs
  File "/usr/local/lib/python2.7/site-packages/numpy/matrixlib/defmatrix.py", line 341, in __mul__
    return N.dot(self, asmatrix(other))

 `ValueError: matrices are not aligned`

Je m'attendais à lhs à être un vecteur colonne et rhs doit être un scalaire et donc que l'opération devrait fonctionner.
Pour déboguer, j'ai imprimé les dimensions:

    print "lhs", np.shape(lhs)
    print  "rhs", rhs, np.shape(rhs)

Sorties:

lhs (1, 18209)
rhs [[ 0.5]] (1, 1)

Il semble donc qu'ils sont compatibles avec une multiplication. Toutes les pensées de ce que je fais mal?

EDIT: Plus d'informations de ce que je suis en train de faire.

Ce code est à mettre en œuvre un log-probabilité de gradient pour estimer les coefficients.

ValueError: matrices ne sont pas alignés

z est le produit scalaire du poids avec les valeurs de x.

Ma tentative de mise en œuvre de cette:

def log_likelihood_grad(X, Y, w, C=0.1):
    K = len(w)
    N = len(X)
    s = np.zeros(K)

    for i in range(N):
        dotp = np.dot(X[i], w)
        mult = -Y[i] * dotp
        lhs = Y[i] * X[i]
        rhs = logistic(mult)
        s += lhs * rhs

    s -= C * w

    return s
Veuillez spécifier la ligne à laquelle déclenche une exception. Aussi, .size est le nombre total d'éléments dans le tableau; ce dont vous avez besoin pour l'impression (et à inclure dans votre question) est .shape.
Qu'essayez-vous de le faire avec lhs et rhs, à partir d'un point de vue mathématique?

OriginalL'auteur leonsas | 2014-12-16