tensorflow构建BP神经网络的方法


Posted in Python onMarch 12, 2018

之前的一篇博客专门介绍了神经网络的搭建,是在python环境下基于numpy搭建的,之前的numpy版两层神经网络,不能支持增加神经网络的层数。最近看了一个介绍tensorflow的视频,介绍了关于tensorflow的构建神经网络的方法,特此记录。

tensorflow的构建封装的更加完善,可以任意加入中间层,只要注意好维度即可,不过numpy版的神经网络代码经过适当地改动也可以做到这一点,这里最重要的思想就是层的模型的分离。

import tensorflow as tf  
import numpy as np  
 
def addLayer(inputData,inSize,outSize,activity_function = None): 
  Weights = tf.Variable(tf.random_normal([inSize,outSize]))  
  basis = tf.Variable(tf.zeros([1,outSize])+0.1)  
  weights_plus_b = tf.matmul(inputData,Weights)+basis 
  if activity_function is None: 
    ans = weights_plus_b 
  else: 
    ans = activity_function(weights_plus_b) 
  return ans 
 
 
x_data = np.linspace(-1,1,300)[:,np.newaxis] # 转为列向量 
noise = np.random.normal(0,0.05,x_data.shape) 
y_data = np.square(x_data)+0.5+noise 
 
 
xs = tf.placeholder(tf.float32,[None,1]) # 样本数未知,特征数为1,占位符最后要以字典形式在运行中填入 
ys = tf.placeholder(tf.float32,[None,1]) 
 
l1 = addLayer(xs,1,10,activity_function=tf.nn.relu) # relu是激励函数的一种 
l2 = addLayer(l1,10,1,activity_function=None) 
loss = tf.reduce_mean(tf.reduce_sum(tf.square((ys-l2)),reduction_indices = [1]))#需要向相加索引号,redeuc执行跨纬度操作 
 
train = tf.train.GradientDescentOptimizer(0.1).minimize(loss) # 选择梯度下降法 
 
init = tf.initialize_all_variables() 
sess = tf.Session() 
sess.run(init) 
 
for i in range(10000): 
  sess.run(train,feed_dict={xs:x_data,ys:y_data}) 
  if i%50 == 0: 
    print sess.run(loss,feed_dict={xs:x_data,ys:y_data})

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

Python 相关文章推荐
Python脚本实现格式化css文件
Apr 08 Python
Python中的默认参数实例分析
Jan 29 Python
python opencv之SURF算法示例
Feb 24 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 Python
python实现网页自动签到功能
Jan 21 Python
python assert的用处示例详解
Apr 01 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
May 15 Python
Python实现决策树并且使用Graphviz可视化的例子
Aug 09 Python
python支持多线程的爬虫实例
Dec 21 Python
Python实现序列化及csv文件读取
Jan 19 Python
python不相等的两个字符串的 if 条件判断为True详解
Mar 12 Python
Python管理Windows服务小脚本
Mar 12 #Python
python实现教务管理系统
Mar 12 #Python
python编写弹球游戏的实现代码
Mar 12 #Python
python学生管理系统代码实现
Apr 05 #Python
python图书管理系统
Apr 05 #Python
怎么使用pipenv管理你的python项目
Mar 12 #Python
python实现图书管理系统
Mar 12 #Python
You might like
php的memcache类分享(memcache队列)
2014/03/26 PHP
php实现Mysql简易操作类
2015/10/11 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
2017/11/25 PHP
Javascript Select操作大集合
2009/05/26 Javascript
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
vue中如何使用ztree
2018/02/06 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
Python写的一个简单DNS服务器实例
2014/06/04 Python
python调用java的jar包方法
2018/12/15 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
2020/08/24 HTML / CSS
Ramy Brook官网:美国现代女装品牌
2019/06/18 全球购物
自主招生自荐信
2013/12/08 职场文书
运动会领导邀请函
2014/01/10 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
销售2014年度工作总结
2014/12/08 职场文书
2015大学生求职信范文
2015/03/20 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
领导离职感言
2015/08/03 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android