Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Python для новичков
  • » Сделал нейронку для переливания крови с 1 эпохой, нужно теперь все автоматизировать чтобы задать 1000 эпох [RSS Feed]

#1 Фев. 27, 2019 14:13:40

mishace212
Зарегистрирован: 2019-02-27
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Сделал нейронку для переливания крови с 1 эпохой, нужно теперь все автоматизировать чтобы задать 1000 эпох

прямой ход:
import numpy as np
x1=1
x2=0
//веса
w1=0.2
w2=0.4
w3=0.7
w4=0.5
w5=0.3
w6=0.5
w7=0.6
w8=0.9
b1=1

Zpr1=x1*w1+x2*w5+b1
print ("1 нейрон:", Zpr1)
Zpr2=x1*w2+x2*w6+b1
print ("2 нейрон:", Zpr2)
Zpr3=x1*w3+x2*w7+b1
print ("3 нейрон:", Zpr3)
Zpr4=x1*w4+x2*w8+b1
print ("4 нейрон:", Zpr4)

import math
//активационная функция
def sigmoid(x):
return 1 / (1 + math.exp(1)**-x)
Ypr1=sigmoid(Zpr1)
Ypr2=sigmoid(Zpr2)
Ypr3=sigmoid(Zpr3)
Ypr4=sigmoid(Zpr4)
print("Сигмоид 1 нейрона:", Ypr1)
print("Сигмоид 2 нейрона:", Ypr2)
print("Сигмоид 3 нейрона:", Ypr3)
print("Сигмоид 4 нейрона:", Ypr4)
w9 = 0.2
w10 = 0.4
w11 = 0.6
w12 = 0.8
b2=1
Zpr5=x1*w9+x2*w10+b2
Zpr6=x1*w11+x2*w12+b2
b2 = 1
Zv = Ypr1*w9+Ypr2*w10+Ypr3*w11+Ypr4*w12+b2
print ("Zv: ",Zv)
Yv=sigmoid(Zv)
print ("Yv: ",Yv) //общий выход нейросети

обратный ход (проверка):
E=1/2*(1-Yv)**2
print ("Квадратичная функция ошибки: ", E)

EW9=(E/Yv)*(Yv/Zv)*(Zv/w9) //веса выходного слоя
EW10=(E/Yv)*(Yv/Zv)*(Zv/w10)
EW11=(E/Yv)*(Yv/Zv)*(Zv/w11)
EW12=(E/Yv)*(Yv/Zv)*(Zv/w12)
Eb2=(E/Yv)*(Yv/Zv)*(Zv/b2)
print ("E/W9:", EW9)
print ("E/W10:", EW10)
print ("E/W11:", EW11)
print ("E/W12:", EW12)
print ("E/b2:", Eb2)
wn9=w9-0.5*E1W9 //новые веса
wn10=w10-0.5*EW10
wn11=w11-0.5*EW11
wn12=w12-0.5*EW12
Bn2=b2-0.5*Eb2
print ("W9:", wn9)
print ("W10:", wn10)
print ("W11:", wn11)
print ("W12:", wn12)
print ("b2:", Bn2) //биас

EW1=(E/Yv)*(Yv/Zv)*(Zv/w1)
EW2=(E/Yv)*(Yv/Zv)*(Zv/w2)
EW3=(E/Yv)*(Yv/Zv)*(Zv/w3)
EW4=(E/Yv)*(Yv/Zv)*(Zv/w4)
EW5=(E/Yv)*(Yv/Zv)*(Zv/w5)
EW6=(E/Yv)*(Yv/Zv)*(Zv/w6)
EW7=(E/Yv)*(Yv/Zv)*(Zv/w7)
EW8=(E/Yv)*(Yv/Zv)*(Zv/w8)
Eb1=(E/Yv)*(Yv/Zv)*(Zv/b1)
print ("E/W1:", EW1)
print ("E/W2:", EW2)
print ("E/W3:", EW3)
print ("E/W4:", EW4)
print ("E/W5:", EW5)
print ("E/W6:", EW6)
print ("E/W7:", EW7)
print ("E/W8:", EW8)
print ("E/b1:", Eb1)
wn1=w1-0.5*EW1
wn2=w2-0.5*EW2
wn3=w3-0.5*EW3
wn4=w4-0.5*EW4
wn5=w5-0.5*EW5
wn6=w6-0.5*EW6
wn7=w7-0.5*EW7
wn8=w8-0.5*EW8
Bn1=b1-0.5*Eb1
print ("W1:", wn1)
print ("W2:", wn2)
print ("W3:", wn3)
print ("W4:", wn4)
print ("W5:", wn5)
print ("W6:", wn6)
print ("W7:", wn7)
print ("W8:", wn8)
print ("B1:", Bn1)

Отредактировано mishace212 (Фев. 27, 2019 14:14:23)

Офлайн

  • Начало
  • » Python для новичков
  • » Сделал нейронку для переливания крови с 1 эпохой, нужно теперь все автоматизировать чтобы задать 1000 эпох[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version