ValueError: матрица не выровнена проблема в программе Python AI - PullRequest
1 голос
/ 02 ноября 2019

Я пытался создать программу ИИ, и она не работает. Я включу фото ошибки в терминале. То, что я пытаюсь сделать, это передать ему пример четырехзначного ввода, затем составить формулу и, наконец, позвольте мне выбрать свой собственный ввод и попробовать формулу. Спасибо!

import numpy as np

def sigmoid(x, deriv=False):
    if(deriv==True):
        return (x*(1-x))

    return 1/(1+np.exp(-x))

x = np.array([[1,0,0,1]])

y = np.array([[1],
[2]])

syn0 = 2*np.random.random_sample((4,4)) - 1
syn1 = 2*np.random.random_sample((4,1)) - 1

for j in range(60000):

    l0 = x
    l1 = sigmoid(np.dot(l0, syn0))
    l2 = sigmoid(np.dot(l1, syn1))

    l2_error = y - l2
    if (j % 10000) == 0:
        print ('Error:' + str(np.mean(np.abs(l2_error))))

    l2_delta = l2_error * sigmoid(l2, deriv=True)
    l1_error = l2_delta.dot(syn1.T)
    l1_delta = l1_error * sigmoid(l1, deriv=True)

    syn0 += l0.T.dot(l1_delta)
    syn1 += l1.T.dot(l2_delta)

newX1 = int(input("x1: "))
newX2 = int(input("x2: "))
newX3 = int(input("x3: "))
newX4 = int(input("x4: "))
newX = np.array([[newX1], [newX2], [newX3], [newX4]])
l0 = newX
l1 = sigmoid(np.dot(l0, syn0))
l2 = sigmoid(np.dot(l1, syn1))
print (l2)

Это ошибка в терминале. Там написано:

line 31, in <module>
    syn0 += l0.T.dot(l1_delta)
ValueError: matrices are not aligned
...