资源简介
手写函数构建神经网络结构和模拟神经网络向前向后传播和迭代过程
def sigmoid(z):
return 1.0/(1 np.exp(-z))
def bp(w,b,l):
# 1.向前传播计算预测值和误差
h1=sigmoid(w[1]*l[1] w[2]*l[2] b[1])
h2=sigmoid(w[3]*l[1] w[4]*l[2] b[1])
h3=sigmoid(w[5]*l[1] w[6]*l[2] b[1])
o1=sigmoid(w[7]*h1 w[9]*h2 w[11]*h3 b[2])
o2=sigmoid(w[8]*h1 w[10]*h2 w[12]*h3 b[2])
e=np.square(o1-0.01)/2 np.square(o2-0.99)/2
#2.向后传播误差,跟新权值、偏置
#t1=-(target-outo1)*outo1*(1-outo1)
t1=-(0.01-o1)*o1*(1-o1)
#t2=-(target-outo2)*outo2*(1-outo2)
t2=-(0.99-o2)*o2*(1-o2)
w[7]=w[7]-0.25*(t1*h1)
w[9]=w[9]-0.25*(t1*h2)
w[11]=w[11]-0.25*(t1*h3)
w[8]=w[8]-0.25*(t2*h1)
w[10]=w[10]-0.25*(t2*h2)
w[12]=w[12]-0.25*(t2*h3)
w[1]=w[1]-0.25*(t1*w[7] t2*w[8])*h1*(1-h1)*l[1]
w[2]=w[2]-0.25*(t1*w[7] t2*w[8])*h1*(1-h1)*l[2]
w[3]=w[3]-0.25*(t1*w[9] t2*w[10])*h2*(1-h2)*l[1]
w[4]=w[4]-0.25*(t1*w[9] t2*w[10])*h2*(1-h2)*l[2]
w[5]=w[5]-0.25*(t1*w[11] t2*w[12])*h3*(1-h3)*l[1]
w[6]=w[6]-0.25*(t1*w[11] t2*w[12])*h3*(1-h3)*l[2]
return o1,o2,w,e
def sigmoid(z):
return 1.0/(1 np.exp(-z))
def bp(w,b,l):
# 1.向前传播计算预测值和误差
h1=sigmoid(w[1]*l[1] w[2]*l[2] b[1])
h2=sigmoid(w[3]*l[1] w[4]*l[2] b[1])
h3=sigmoid(w[5]*l[1] w[6]*l[2] b[1])
o1=sigmoid(w[7]*h1 w[9]*h2 w[11]*h3 b[2])
o2=sigmoid(w[8]*h1 w[10]*h2 w[12]*h3 b[2])
e=np.square(o1-0.01)/2 np.square(o2-0.99)/2
#2.向后传播误差,跟新权值、偏置
#t1=-(target-outo1)*outo1*(1-outo1)
t1=-(0.01-o1)*o1*(1-o1)
#t2=-(target-outo2)*outo2*(1-outo2)
t2=-(0.99-o2)*o2*(1-o2)
w[7]=w[7]-0.25*(t1*h1)
w[9]=w[9]-0.25*(t1*h2)
w[11]=w[11]-0.25*(t1*h3)
w[8]=w[8]-0.25*(t2*h1)
w[10]=w[10]-0.25*(t2*h2)
w[12]=w[12]-0.25*(t2*h3)
w[1]=w[1]-0.25*(t1*w[7] t2*w[8])*h1*(1-h1)*l[1]
w[2]=w[2]-0.25*(t1*w[7] t2*w[8])*h1*(1-h1)*l[2]
w[3]=w[3]-0.25*(t1*w[9] t2*w[10])*h2*(1-h2)*l[1]
w[4]=w[4]-0.25*(t1*w[9] t2*w[10])*h2*(1-h2)*l[2]
w[5]=w[5]-0.25*(t1*w[11] t2*w[12])*h3*(1-h3)*l[1]
w[6]=w[6]-0.25*(t1*w[11] t2*w[12])*h3*(1-h3)*l[2]
return o1,o2,w,e
代码片段和文件信息
#!/usr/bin/env python
# coding: utf-8
# In[1]:
import numpy as np
w=[00.10.150.20.250.30.350.40.450.50.550.60.65]
b=[00.350.65]
l=[0510]
def sigmoid(z):
return 1.0/(1+np.exp(-z))
def bp(wbl):
# 1.向前传播计算预测值和误差
h1=sigmoid(w[1]*l[1]+w[2]*l[2]+b[1])
h2=sigmoid(w[3]*l[1]+w[4]*l[2]+b[1])
h3=sigmoid(w[5]*l[1]+w[6]*l[2]+b[1])
o1=sigmoid(w[7]*h1+w[9]*h2+w[11]*h3+b[2])
o2=sigmoid(w[8]*h1+w[10]*h2+w[12]*h3+b[2])
e=np.square(o1-0.01)/2+np.square(o2-0.99)/2
#2.向后传播误差,跟新权值、偏置
#t1=-(target-outo1)*outo1*(1-outo1)
t1=-(0.01-o1)*o1*(1-o1)
#t2=-(target-outo2)*outo2*(1-outo2)
相关资源
- 计算机视觉 opencv 医学图片处理.ipy
- python实现 99乘法表
- python连接dubbo
- 百度图片爬虫(python版)
- 《Python 编程:从入门到实践》所有代
- 帝国竞争算法python实现
- 卷积神经网络在医学图像分割中的研
- 拼音转汉字(python输入法)
- python实现逻辑回归
- python 绘制三维直线图(plot 3d traject
- python爬取小说59868
- python编程:入门到实践 源代码
- python编程:入门到实践练习答案
- 验证码识别(pytesseract+ matplotlib)
- Python海龟法绘制花朵
- python 显示实时网速
- 基于K210开发的人脸特征识别2020电赛(
- 微分方程数值解法
- pyqt5窗体数据传输简单
- python数据预处理.ipynb
- MicroPython中文教程
- 循环转递归通用范式.py
- Python列表常用知识总结
- python画爱心案例(基于Turtle)
- python数据类型学习思维导图
- python 飞机大战小游戏
- python打印玫瑰花
- 你也能看得懂的Python算法书 代码
- 自动截屏工具(python源码)
- python学生管理器源码
评论
共有 条评论