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绘制条形图方法代码详解
Dec 19 Python
python把数组中的数字每行打印3个并保存在文档中的方法
Jul 17 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
Oct 11 Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 Python
浅谈python新式类和旧式类区别
Apr 26 Python
python实现超市商品销售管理系统
Nov 22 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
May 27 Python
python代码如何注释
Jun 01 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
Jun 11 Python
win10安装python3.6的常见问题
Jul 01 Python
python基本算法之实现归并排序(Merge sort)
Sep 01 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
Feb 22 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 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
php HandlerSocket的使用
2011/05/02 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
2020/10/28 PHP
用JavaScript仿PS里的羽化效果代码
2011/12/20 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
AngularJS快速入门
2015/04/02 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
vue检测对象和数组的变化分析
2018/06/30 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
Nuxt.js nuxt-link与router-link的区别说明
2020/11/06 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
python模块restful使用方法实例
2013/12/10 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
python类的继承实例详解
2017/03/30 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
python实现图像拼接
2020/03/05 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
python反扒机制的5种解决方法
2021/02/06 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
质检部经理岗位职责
2014/02/19 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
离职感谢信
2015/01/21 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
Nginx虚拟主机的配置步骤过程全解
2022/03/31 Servers