Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- class NeuralNetwork():
- def __init__(self):
- # для генерации случайных чисел
- np.random.seed(1)
- # преобразование весов в матрицу 3 на 1 со значениями от -1 до 1 и среднее значение 0
- self.synaptic_weights = 2 * np.random.random((3, 1)) - 1
- def sigmoid(self, x):
- # применение сигмоидной функции
- return 1 / (1 + np.exp(-x))
- def sigmoid_derivative(self, x):
- # вычисление производной по сигмоидной функции
- return x * (1 - x)
- def train(self, training_inputs, training_outputs, training_iterations):
- # обучение модели для точных предсказаний при постоянном регулировании весов
- for iteration in range(training_iterations):
- #получаем данные обучения через нейрон
- output = self.think(training_inputs)
- # вычислительная частота ошибок для обратного распространения
- error = training_outputs - output
- # корректировка веса
- adjustments = np.dot(training_inputs.T, error * self.sigmoid_derivative(output))
- self.synaptic_weights += adjustments
- def think(self, inputs):
- # передача входов через нейрон для получения вывода
- # преобразование значений в floats
- inputs = inputs.astype(float)
- output = self.sigmoid(np.dot(inputs, self.synaptic_weights))
- return output
- if __name__ == "__main__":
- # инициализация класса нейронов
- neural_network = NeuralNetwork()
- print("Начало произвольно сгенерированных весов:")
- print(neural_network.synaptic_weights)
- # учебные данные, состоящие из 4 примеров - 3 входных значения и 1 выход
- training_inputs = np.array([[0, 0, 1],
- [1, 1, 1],
- [1, 0, 1],
- [0, 1, 1]])
- training_outputs = np.array([[0, 1, 1, 0]]).T
- # тренировка проходит
- neural_network.train(training_inputs, training_outputs, 15000)
- print("Окончание весов после обучения: ")
- print(neural_network.synaptic_weights)
- user_input_one = str(input("Пользовательский ввод один:"))
- user_input_two = str(input("Пользовательский ввод два:"))
- user_input_three = str(input("Пользовательский ввод три:"))
- print("Учитывая новую ситуацию:", user_input_one, user_input_two, user_input_three)
- print("Новые выходные данные:")
- print(neural_network.think(np.array([user_input_one, user_input_two, user_input_three])))
- print("Вау, мы сделали это!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement