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 相关文章推荐
详解python3百度指数抓取实例
Dec 12 Python
你应该知道的python列表去重方法
Jan 17 Python
linux环境下python中MySQLdb模块的安装方法
Jun 16 Python
python数据结构之链表的实例讲解
Jul 25 Python
python opencv人脸检测提取及保存方法
Aug 03 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
利用python脚本如何简化jar操作命令
Feb 24 Python
python opencv 图像拼接的实现方法
Jun 27 Python
python修改文件内容的3种方法详解
Nov 15 Python
matplotlib绘制多个子图(subplot)的方法
Dec 03 Python
python爬取网易云音乐热歌榜实例代码
Aug 07 Python
Python Pandas常用函数方法总结
Jun 15 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学习之PHP表达式
2006/10/09 PHP
php include的妙用,实现路径加密
2008/07/29 PHP
PHP教程 基本语法
2009/10/23 PHP
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
2016/10/10 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
[00:15]天涯墨客终极技能展示
2018/08/25 DOTA
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
python浪漫表白源码
2019/04/05 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
2019/05/28 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
python如何使用腾讯云发送短信
2020/09/17 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
师范生自荐信范文
2013/10/06 职场文书
车间主管岗位职责
2013/11/14 职场文书
酒店led欢迎词
2014/01/09 职场文书
生产部岗位职责范文
2014/02/07 职场文书
单位考核鉴定意见
2015/06/05 职场文书
解析laravel使用workerman用户交互、服务器交互
2021/04/28 PHP