Найти - Пользователи
Полная версия: Помогите с простой нейросетью
Начало » Центр помощи » Помогите с простой нейросетью
1
Insturbed
Буду краток. Есть код для нейросети, которая предсказывает выходные данные на основе входных, подскажите, в чём ошибка?
Версия python 3.6, работаю через юпитер
 import numpy as np
# Сигмоида 
def nonlin(x,deriv=False):
    if(deriv==True):
        return f(x)*(1-f(x))
    return 1/(1+np.exp(-x))
    
# набор входных данных
X = np.array([  [0,0,1],
                [0,1,1],
                [1,0,1],
                [1,1,1] ])
    
# выходные данные            
y = np.array([[0,0,1,1]]).T
# сделаем случайные числа более определёнными
np.random.seed(1)
# инициализируем веса случайным образом со средним 0
syn0 = 2*np.random.random((3,1)) - 1
for iter in xrange(10000):
    # прямое распространение
    l0 = X
    l1 = nonlin(np.dot(l0,syn0))
    # насколько мы ошиблись?
    l1_error = y - l1
    # перемножим это с наклоном сигмоиды 
    # на основе значений в l1
    l1_delta = l1_error * nonlin(l1,True) # !!!
    # обновим веса
    syn0 += np.dot(l0.T,l1_delta) # !!!
print "Выходные данные после тренировки:"
print l1
"Выходные данные после тренировки:"
[[ 0.00966449]
 [ 0.00786506]
 [ 0.99358898]
 [ 0.99211957]]
FishHook
Первое предупреждение за спам темами
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB