Проблемма в кол-во попытках для нейросети, а также в запоминание веса
Проблема заключается в том что когда я запускаю нейронную сеть ей приходиться попробовать 200млн попыток чтобы найти ответ а я бы хотел чтобы он запоминал прикаких рехультатах ответ выводится правильный. Я начинающий так что бейте если не оптимизированно или что-то плохо буду всем блягодарен.
import numpy as np
def sigmoid(x):
return 1/(1 + np.exp(-x))
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
np.random.seed(1)
synaptic_weights = 2 * np.random.random((3,1)) - 1
for i in range(20000000):
input_layer = training_inputs
outputs = sigmoid( np.dot(input_layer, synaptic_weights) )
err = training_outputs - outputs
adjustments = np.dot( input_layer.T, err * (outputs * (1 - outputs)) )
synaptic_weights+= adjustments
print( "Веса после обучения:" )
print(synaptic_weights)
print( "Результат после обучения:" )
print(outputs)
# ТЕСТ
new_inputs = np.array([0,1,0])
output = sigmoid( np.dot( new_inputs, synaptic_weights ) )
print("Новая ситуация")
print(output)
Ответы (1 шт):
Что-то вопрос либо слишком тривиальный, либо за гранью понимания. Давайте уточним. Вы пишете, что провели обучение, нашли веса своей нейросетки.
Впрочем, процесса обучения я как-то не заметил. Процесс подбора параметра - да присутствует. Но процесс обучения нейросети - это поступление на вход МНОЖЕСТВА примеров. Пусть 2000000 - но примеров. А не 2000000 итераций на одном входном примере. Это что касается вашей программы.
Теперь собственно вопрос.
Если предположить, что вы таки обучили нейростеть, нашли ее параметры и желаете их сохранить для использования в дальнейшем, то сделать это можно единственным способом - записав их в файл, а потом, при необходимости - читая их из этого файла.