У меня проблема с умножением матриц моей нейронной сети Python.Будучи еще старшеклассником, я почти ничего не знаю о ММ, кроме пары уроков.Моя нейронная сеть работала нормально, когда мои входные данные были похожи ([0,1,1] ...), но когда я изменил их на удвоения, мой ММ работает неправильно (без вывода)
# The initialization
import numpy as np
iterations = int(0)
#TO THE CODING=>
def sigmoid(x):
return 1/(1 + np.exp(-x))
#The function- 2
def Sigmoid_Derivative(x):
return sigmoid(x) * (1-sigmoid(x))
Training_inputs = np.array([[0,0],
[1,1],
[1,0],
[0,1]]) # 4 rows * 2 columns
Training_outputs = np.array([[1, 1,
0, 0]]).T # 2 rows * 2 columns
Correct_Outputs = np.array([[[1],[1],
[0],[0]]])
np.random.seed(1)
synaptic_weights = np.random.random((2, 1)) - 1
print ("Random starting synaptic weight:")
print (synaptic_weights)
for iteration in range(20000):
Input_Layer = Training_inputs
Outputs = sigmoid(np.dot(Input_Layer, synaptic_weights))
erorr = Training_outputs - Outputs
adjustments = erorr * Sigmoid_Derivative(Outputs)
synaptic_weights += np.dot(Input_Layer.T, adjustments)
Rounder = np.around([np.array(Outputs)],decimals = 2,)
Final_Outputs = Rounder.astype(int)
iterations += 1
if np.array_equal(Final_Outputs, Correct_Outputs):
print ("Synaptic weights after trainig:")
print (synaptic_weights)
print ("Outputs after training: ")
print (Outputs)
print ("NO. of iterations required: ",iterations)
break
else:
continue
PS Проверка итерации if-else была моим собственным кодированием.Может быть, это может иметь потенциальное значение.