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