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操作MongoDB基础知识
Nov 01 Python
Python中matplotlib中文乱码解决办法
May 12 Python
Python标准库inspect的具体使用方法
Dec 06 Python
django用户登录和注销的实现方法
Jul 16 Python
Python定时任务sched模块用法示例
Jul 16 Python
python中join()方法介绍
Oct 11 Python
python实现旋转和水平翻转的方法
Oct 25 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
python绘制高斯曲线
Feb 19 Python
python3 删除所有自定义变量的操作
Apr 08 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
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
JS二分查找算法详解
2017/11/01 Javascript
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
vue实现自定义多选按钮
2020/07/16 Javascript
node.js通过url读取文件
2020/10/16 Javascript
Python实现模拟时钟代码推荐
2015/11/08 Python
常见python正则用法的简单实例
2016/06/21 Python
python 全文检索引擎详解
2017/04/25 Python
Python实现矩阵转置的方法分析
2017/11/24 Python
python读取Excel实例详解
2018/08/17 Python
pycharm配置git(图文教程)
2019/08/16 Python
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
2015/10/22 面试题
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
2013/04/24 面试题
实习生单位鉴定意见
2013/12/04 职场文书
人事部专员岗位职责
2014/03/04 职场文书
美国留学经济担保书
2014/05/20 职场文书
五好文明家庭事迹材料
2014/12/20 职场文书
格列夫游记读书笔记
2015/07/01 职场文书
工作一年自我鉴定
2019/06/20 职场文书