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之hello world
May 21 Python
Python创建xml的方法
Mar 10 Python
python executemany的使用及注意事项
Mar 13 Python
Python3一行代码实现图片文字识别的示例
Jan 15 Python
django1.11.1 models 数据库同步方法
May 30 Python
Python实现通过继承覆盖方法示例
Jul 02 Python
Mac中PyCharm配置Anaconda环境的方法
Mar 04 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
你应该知道的Python3.6、3.7、3.8新特性小结
May 12 Python
python代码能做成软件吗
Jul 24 Python
Python pexpect模块及shell脚本except原理解析
Aug 03 Python
通过代码实例了解Python异常本质
Sep 16 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数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
PHP页面中文乱码分析
2013/10/29 PHP
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
javascript中的作用域scope介绍
2010/12/28 Javascript
javascript操作css属性
2013/12/30 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
2015/09/02 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
轻松实现JavaScript图片切换
2016/01/12 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
jQuery使用each方法与for语句遍历数组示例
2016/06/16 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
2019/09/11 Javascript
Vue3 实现双盒子定位Overlay的示例
2020/12/22 Vue.js
Python的Django框架安装全攻略
2015/07/15 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
Python 移动光标位置的方法
2019/01/20 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
python操作excel让工作自动化
2019/08/09 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
Python使用Paramiko控制liunx第三方库
2020/05/20 Python
python实现画图工具
2020/08/27 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
Reformation官网:美国女装品牌
2018/09/14 全球购物
运动会开幕式邀请函
2014/01/22 职场文书
计划生育宣传标语
2014/06/21 职场文书
爱晚亭导游词
2015/02/09 职场文书
综合办公室岗位职责
2015/04/11 职场文书
创业计划书之服装
2019/10/07 职场文书