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实现分析apache和nginx日志文件并输出访客ip列表的方法
Apr 04 Python
python中使用序列的方法
Aug 03 Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
Oct 29 Python
python在新的图片窗口显示图片(图像)的方法
Jul 11 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
Sep 15 Python
pytorch实现用CNN和LSTM对文本进行分类方式
Jan 08 Python
如何理解python中数字列表
May 29 Python
Django中F函数的使用示例代码详解
Jul 06 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
Nov 12 Python
python SOCKET编程基础入门
Feb 27 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的可变变量名的使用方法分享
2012/02/05 PHP
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
JavaScript 函数式编程的原理
2009/10/16 Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
JS 仿腾讯发表微博的效果代码
2013/12/25 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
js实现带有介绍的Select列表菜单实例
2015/08/18 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
关于foreach循环中遇到的问题小结
2017/05/08 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
vue debug 二种方法
2018/09/16 Javascript
vue 自动化路由实现代码
2019/09/03 Javascript
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python之re操作方法(详解)
2017/06/14 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
WxPython实现无边框界面
2019/11/18 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
2020/02/29 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
竞选演讲稿范文
2013/12/28 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
2015年宣传工作总结
2015/04/08 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript
详解Python中的进程和线程
2021/06/23 Python
opencv-python图像配准(匹配和叠加)的实现
2021/06/23 Python