неправильный рассчет ошибки нейросети
Я написал нейросеть. постоянно выдается одно и та же значение ошибки нейросети. нейросеть необучается. Как решить эту проблему? В зарание спасибо вот код.
import random
db = [0, 0, 0, 0, 1, 1, 1, 0, 1]
s = []
n = [0, 0, 0, 0, 0]
ps = []
i = 0
error1 = 0
while i <= 6:
s.append(random.randint(-50, 50)/10)
i += 1
i = 0
while i <= 8:
n[0] = db[i]
i += 1
n[1] = db[i]
i += 1
n[2] = n[0]*s[0]+n[1]*s[1]
n[3] = n[0]*s[2]+n[1]*s[3]
n[4] = n[2]*s[4]+n[3]*s[5]
error = db[i]-n[4]
if error < 0:
error1 = error1+(-error)
else:
error1 = error1+error
i += 1
perror = error1
ps = s
print(perror)
while perror > 0.5:
i1 = random.randint(0, 5)
s[i1] = s[i1]+random.randint(-1, 1)/10
while i <= 8:
n[0] = db[i]
i += 1
n[1] = db[i]
i += 1
n[2] = n[0]*s[0]+n[1]*s[1]
n[3] = n[0]*s[2]+n[1]*s[3]
n[4] = n[2]*s[4]+n[3]*s[5]
error = db[i]-n[4]
if error < 0:
error = (-error)
error1 = error1+error
else:
error1 = error1+error
if error1 <= perror:
perror = error1
ps = s
s = ps
else:
s = ps
i += 1
print(perror)
print(s)
input()
Ответы (1 шт):
Автор решения: Tehnorobot
→ Ссылка
Я не уверен, но скорее всего ошибка в том, что вы не меняете ключевые значения для выходов модели нейронной сети.
У вас данные строчки не используются, но скорее всего должны, исходя из вашего кода:
i1 = random.randint(0, 5)
s[i1] = s[i1]+random.randint(-1, 1)/10
Далее после этих строк идёт цикл while, где используются те же значения переменных:
db[i] - > error - > error1 - > perror