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发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
Python对数据库操作
Mar 28 Python
python 接口_从协议到抽象基类详解
Aug 24 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 Python
Python根据文件名批量转移图片的方法
Oct 21 Python
一看就懂得Python的math模块
Oct 21 Python
Django Form and ModelForm的区别与使用
Dec 06 Python
python实现简单日志记录库glog的使用
Dec 13 Python
Python configparser模块常用方法解析
May 22 Python
如何用python 操作zookeeper
Dec 28 Python
Python3中的tuple函数知识点讲解
Jan 03 Python
Python 如何解决稀疏矩阵运算
May 26 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/07/03 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
2016/07/07 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
浅谈php调用python文件
2019/03/29 PHP
js实时监听文本框状态的方法
2011/04/26 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
node.js中的fs.closeSync方法使用说明
2014/12/17 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
python安装pil库方法及代码
2019/06/25 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
关于numpy数组轴的使用详解
2019/12/05 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
国际书籍零售商:Wordery
2017/11/01 全球购物
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
生产经理的自我评价分享
2013/11/07 职场文书
演讲稿开场白
2014/01/13 职场文书
市场营销工作计划书
2014/05/06 职场文书
2015年新农合工作总结
2015/03/30 职场文书
2015年检验科工作总结
2015/04/27 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
关于车尾的标语大全
2015/08/11 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书