BP神经网络Python实现异或问题
来源:互联网 发布:中科汇通知乎 编辑:程序博客网 时间:2024/05/19 00:44
# -*- coding: UTF-8 -*-import matplotlib as mplimport numpy as npimport matplotlib.pyplot as plt#BP神经网络实现异或问题X=np.array([[1,0,0], [1,0,1], [1,1,0], [1,1,1]])#输入层3个节点,隐含层4个节点,所以需要3*4个权值V=np.random.random((3,4))*2-1#权值的取值范围为-1~1W=np.random.random((4,1))*2-1#权值的取值范围为-1~1print(V)print(W)Y=np.array([[0,1,1,0]])lr = 0.11 #学习率n=0 #计算迭代次数O=0#神经网络输出#定义sigmoid函数def sigmoid(x): return 1/(1+np.exp(-x))#sigmoid的导数def dsigmoid(x): return x*(1-x)def update(): global X,Y,W,V,lr L1=sigmoid(np.dot(X,V))#隐含层的输出,即输入层的X矩阵和输入层权值V相乘 L2=sigmoid(np.dot(L1,W))#输出层的输出 L2_delta = (Y.T-L2)*dsigmoid(L2) L1_delta = L2_delta.dot(W.T)*dsigmoid(L1) W_C= lr*L1.T.dot(L2_delta) V_C= lr*X.T.dot(L1_delta) W = W+W_C V=V+V_Cfor i in range(20000): update() if(i%500==0): L1=sigmoid(np.dot(X,V))#隐含层的输出,即输入层的X矩阵和输入层权值V相乘 L2=sigmoid(np.dot(L1,W))#输出层的输出 print('Error:',np.mean(np.abs(Y.T-L2)))L1=sigmoid(np.dot(X,V))#隐含层的输出,即输入层的X矩阵和输入层权值V相乘L2=sigmoid(np.dot(L1,W))#输出层的输出print(L2)def judge(x): if(x>=0.5): return 1 else: return 0for i in map(judge,L2): print(i)
阅读全文
0 0
- BP神经网络Python实现异或问题
- BP神经网络-异或问题
- BP神经网络Python实现
- BP神经网络python实现
- 训练三层BP神经网络实现异或运算 Python 代码实现
- BP神经网络解决XOR异或运算python示例
- BP神经网络的Python实现
- 用python实现BP神经网络
- BP神经网络python简单实现
- BP神经网络python简单实现
- BP神经网络的Python实现
- bp神经网络的python实现
- Python实现三层BP神经网络
- 神经网络之BP神经网络(Python实现)
- Python使用numpy实现BP神经网络
- BP神经网络的Python简单实现
- python利用矩阵计算实现BP神经网络
- BP神经网络——Python 实现
- Java 线程池源码解析
- redis数据结构-list
- Spring boot 使用详解
- beego模板语法
- 20BEquation
- BP神经网络Python实现异或问题
- 疯狂Activiti6.0连载(27)BPMN中间事件
- UFLDL 教程学习笔记:3.预处理-主成分分析与白化
- Kotlin-1.2-包和导入
- shell 脚本调试
- Microsoft OneNote 2016 for Mac (云笔记) 含OneNote激活工具 v15.14中文破解版
- leetcode014-Counting Bits
- eclipse 中使用git插件
- python 的继承和多态