全连接神经网络

import numpy as np
import random
import math
x=np.array([[1],
           [2],
           [3]])
t8=2
t9=3

def sig(x):
    sigmoid=1/(1+math.e**(-x))
    return sigmoid


eps = 1e-4
e0 = 0.01
e1 = 0.01
e2 = 0.01
b=0.01
for i in range(10):
    while  e0>=eps or e1>=eps or e2>=eps: 
        w=np.zeros((10,8))
        w1=np.zeros((8,3))
        net4=w1[4,:]*x
        net5=w1[5,:]*x
        net6=w1[6,:]*x
        net7=w1[7,:]*x
        a4=sig(net4)
        a5=sig(net5)
        a6=sig(net6)
        a7=sig(net7)
        a=np.array([[0],
                    [0],
                    [0],
                    [0],
                    [a4],
                    [a5],
                    [a6],
                    [a7]])
        net8=w[8,:]*a
        net9=w[9,:]*a
        y8=sig(net8)
        y9=sig(net9)
        r8=2*(y8-t8)*y8*(1-y8)
        r9=2*(y9-t9)*y9*(1-y9)
        e41 = (r8*w[8,4]+r9*w[9,4])*a4*(1-a4)*x[0][0]
        e42 = (r8*w[8,4]+r9*w[9,4])*a4*(1-a4)*x[1][0]
        e43 = (r8*w[8,4]+r9*w[9,4])*a4*(1-a4)*x[2][0]
        
        e51 = (r8*w[8,5]+r9*w[9,5])*a5*(1-a5)*x[0][0]
        e52 = (r8*w[8,5]+r9*w[9,5])*a5*(1-a5)*x[1][0]
        e53 = (r8*w[8,5]+r9*w[9,5])*a5*(1-a5)*x[2][0]
        
        e61 = (r8*w[8,6]+r9*w[9,6])*a6*(1-a6)*x[0][0]
        e62 = (r8*w[8,6]+r9*w[9,6])*a6*(1-a6)*x[1][0]
        e63 = (r8*w[8,6]+r9*w[9,6])*a6*(1-a6)*x[2][0]
        
        e71 = (r8*w[8,7]+r9*w[9,7])*a7*(1-a7)*x[0][0]
        e72 = (r8*w[8,7]+r9*w[9,7])*a7*(1-a7)*x[1][0]
        e73 = (r8*w[8,7]+r9*w[9,7])*a7*(1-a7)*x[2][0]
        
        e84 = r8*a4
        e85 = r8*a5
        e86 = r8*a6
        e87 = r8*a7
        
        e94 = r9*a4
        e95 = r9*a5
        e96 = r9*a6
        e97 = r9*a7
    else:
        w1[4,1]=w1[4,1]-b*e41
        w1[4,2]=w1[4,2]-b*e42
        w1[4,3]=w1[4,3]-b*e43
        
        w1[5,1]=w1[5,1]-b*e51
        w1[5,2]=w1[5,2]-b*e52
        w1[5,3]=w1[5,3]-b*e53
        
        w1[6,1]=w1[6,1]-b*e61
        w1[6,2]=w1[6,2]-b*e62
        w1[6,3]=w1[6,3]-b*e63
        
        w1[7,1]=w1[7,1]-b*e71
        w1[7,2]=w1[7,2]-b*e72
        w1[7,3]=w1[7,3]-b*e73
        
        w[8,4] = w[8,4]-b*e84
        w[8,5] = w[8,5]-b*e85
        w[8,6] = w[8,6]-b*e86
        w[8,7] = w[8,7]-b*e87
        
        w[9,4] = w[9,4]-b*e94
        w[9,5] = w[9,5]-b*e95
        w[9,6] = w[9,6]-b*e96
        w[9,7] = w[9,7]-b*e97
        
        
print(w1[4,1],w1[4,2],w1[4,3])
print(w1[5,1],w1[5,2],w1[5,3])
print(w1[6,1],w1[6,2],w1[6,3])
print(w1[7,1],w1[7,2],w1[7,3])
print(w[8,4],w[8,5],w[8,6],w[8,7])
print(w[9,4],w[9,5],w[9,6],w[9,7])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@yuanzhong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值