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 07 Python
Python读取ini文件、操作mysql、发送邮件实例
Jan 01 Python
在Python的循环体中使用else语句的方法
Mar 30 Python
python中利用Future对象回调别的函数示例代码
Sep 07 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
用python实现将数组元素按从小到大的顺序排列方法
Jul 02 Python
Python删除n行后的其他行方法
Jan 28 Python
Python将string转换到float的实例方法
Jul 29 Python
通过python实现windows桌面截图代码实例
Jan 17 Python
Python 简单计算要求形状面积的实例
Jan 18 Python
Python MOCK SERVER moco模拟接口测试过程解析
Apr 13 Python
详解python内置模块urllib
Sep 09 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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
javascript 判断整数方法分享
2014/12/16 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
js判断是否是手机页面
2017/03/17 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
微信小程序制作扭蛋机代码实例
2019/09/24 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
Python中如何优雅的合并两个字典(dict)方法示例
2017/08/09 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
python常见字符串处理函数与用法汇总
2019/10/30 Python
Python sorted排序方法如何实现
2020/03/31 Python
python如何操作mysql
2020/08/17 Python
Mytheresa美国官网:德国知名的女性奢侈品电商
2017/05/27 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
硕士研究生自我鉴定
2013/11/08 职场文书
车间机修工岗位职责
2014/02/28 职场文书
《与朱元思书》的教学反思
2014/04/17 职场文书
《称象》教学反思
2014/04/25 职场文书
校庆口号
2014/06/20 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
学校施工安全责任书
2015/01/29 职场文书
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA