python实现简单神经网络算法


Posted in Python onMarch 10, 2018

python实现简单神经网络算法,供大家参考,具体内容如下

python实现二层神经网络

包括输入层和输出层

import numpy as np 
 
#sigmoid function 
def nonlin(x, deriv = False): 
  if(deriv == True): 
    return x*(1-x) 
  return 1/(1+np.exp(-x)) 
 
#input dataset 
x = np.array([[0,0,1], 
       [0,1,1], 
       [1,0,1], 
       [1,1,1]]) 
 
#output dataset 
y = np.array([[0,0,1,1]]).T 
 
np.random.seed(1) 
 
#init weight value 
syn0 = 2*np.random.random((3,1))-1 
 
for iter in xrange(100000): 
  l0 = x             #the first layer,and the input layer  
  l1 = nonlin(np.dot(l0,syn0))  #the second layer,and the output layer 
 
 
  l1_error = y-l1 
 
  l1_delta = l1_error*nonlin(l1,True) 
 
  syn0 += np.dot(l0.T, l1_delta) 
print "outout after Training:" 
print l1
import numpy as np 
 
#sigmoid function 
def nonlin(x, deriv = False): 
  if(deriv == True): 
    return x*(1-x) 
  return 1/(1+np.exp(-x)) 
 
#input dataset 
x = np.array([[0,0,1], 
       [0,1,1], 
       [1,0,1], 
       [1,1,1]]) 
 
#output dataset 
y = np.array([[0,0,1,1]]).T 
 
np.random.seed(1) 
 
#init weight value 
syn0 = 2*np.random.random((3,1))-1 
 
for iter in xrange(100000): 
  l0 = x             #the first layer,and the input layer  
  l1 = nonlin(np.dot(l0,syn0))  #the second layer,and the output layer 
 
 
  l1_error = y-l1 
 
  l1_delta = l1_error*nonlin(l1,True) 
 
  syn0 += np.dot(l0.T, l1_delta) 
print "outout after Training:" 
print l1

这里,
l0:输入层

l1:输出层

syn0:初始权值

l1_error:误差

l1_delta:误差校正系数

func nonlin:sigmoid函数

python实现简单神经网络算法

可见迭代次数越多,预测结果越接近理想值,当时耗时也越长。

python实现三层神经网络

包括输入层、隐含层和输出层

import numpy as np 
 
def nonlin(x, deriv = False): 
  if(deriv == True): 
    return x*(1-x) 
  else: 
    return 1/(1+np.exp(-x)) 
 
#input dataset 
X = np.array([[0,0,1], 
       [0,1,1], 
       [1,0,1], 
       [1,1,1]]) 
 
#output dataset 
y = np.array([[0,1,1,0]]).T 
 
syn0 = 2*np.random.random((3,4)) - 1 #the first-hidden layer weight value 
syn1 = 2*np.random.random((4,1)) - 1 #the hidden-output layer weight value 
 
for j in range(60000): 
  l0 = X            #the first layer,and the input layer  
  l1 = nonlin(np.dot(l0,syn0)) #the second layer,and the hidden layer 
  l2 = nonlin(np.dot(l1,syn1)) #the third layer,and the output layer 
 
 
  l2_error = y-l2    #the hidden-output layer error 
 
  if(j%10000) == 0: 
    print "Error:"+str(np.mean(l2_error)) 
 
  l2_delta = l2_error*nonlin(l2,deriv = True) 
 
  l1_error = l2_delta.dot(syn1.T)   #the first-hidden layer error 
 
  l1_delta = l1_error*nonlin(l1,deriv = True) 
 
  syn1 += l1.T.dot(l2_delta) 
  syn0 += l0.T.dot(l1_delta) 
print "outout after Training:" 
print l2
import numpy as np 
 
def nonlin(x, deriv = False): 
  if(deriv == True): 
    return x*(1-x) 
  else: 
    return 1/(1+np.exp(-x)) 
 
#input dataset 
X = np.array([[0,0,1], 
       [0,1,1], 
       [1,0,1], 
       [1,1,1]]) 
 
#output dataset 
y = np.array([[0,1,1,0]]).T 
 
syn0 = 2*np.random.random((3,4)) - 1 #the first-hidden layer weight value 
syn1 = 2*np.random.random((4,1)) - 1 #the hidden-output layer weight value 
 
for j in range(60000): 
  l0 = X            #the first layer,and the input layer  
  l1 = nonlin(np.dot(l0,syn0)) #the second layer,and the hidden layer 
  l2 = nonlin(np.dot(l1,syn1)) #the third layer,and the output layer 
 
 
  l2_error = y-l2    #the hidden-output layer error 
 
  if(j%10000) == 0: 
    print "Error:"+str(np.mean(l2_error)) 
 
  l2_delta = l2_error*nonlin(l2,deriv = True) 
 
  l1_error = l2_delta.dot(syn1.T)   #the first-hidden layer error 
 
  l1_delta = l1_error*nonlin(l1,deriv = True) 
 
  syn1 += l1.T.dot(l2_delta) 
  syn0 += l0.T.dot(l1_delta) 
print "outout after Training:" 
print l2

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 解析XML python模块xml.dom解析xml实例代码
Feb 07 Python
python 3利用BeautifulSoup抓取div标签的方法示例
May 28 Python
python实现杨辉三角思路
Jul 14 Python
Python学习之Anaconda的使用与配置方法
Jan 04 Python
python使用xslt提取网页数据的方法
Feb 23 Python
Python之list对应元素求和的方法
Jun 28 Python
django中SMTP发送邮件配置详解
Jul 19 Python
Python基于OpenCV实现人脸检测并保存
Jul 23 Python
python2与python3爬虫中get与post对比解析
Sep 18 Python
python+Django+pycharm+mysql 搭建首个web项目详解
Nov 29 Python
基于python实现上传文件到OSS代码实例
May 09 Python
python爬虫多次请求超时的几种重试方法(6种)
Dec 01 Python
TensorFlow saver指定变量的存取
Mar 10 #Python
TensorFLow用Saver保存和恢复变量
Mar 10 #Python
tensorflow创建变量以及根据名称查找变量
Mar 10 #Python
Python2中文处理纪要的实现方法
Mar 10 #Python
python实现冒泡排序算法的两种方法
Mar 10 #Python
Python使用pyh生成HTML文档的方法示例
Mar 10 #Python
tensorflow获取变量维度信息
Mar 10 #Python
You might like
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
如何让div span等元素能响应键盘事件操作指南
2012/11/13 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
有关Python的22个编程技巧
2018/08/29 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
python用插值法绘制平滑曲线
2021/02/19 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
Python配置pip国内镜像源的实现
2020/08/20 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
历史学专业毕业生求职信
2013/09/27 职场文书
求职信模板标准格式范文
2014/02/23 职场文书
大学生学年个人总结
2015/02/15 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
公司停电通知
2015/04/15 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
二审答辩状范文
2015/05/22 职场文书
区域销售大会开幕词
2016/03/04 职场文书