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中的list列表数据结构用法
Mar 12 Python
Python调用C++程序的方法详解
Jan 24 Python
Python自动发邮件脚本
Mar 31 Python
Python 对象中的数据类型
May 13 Python
实例讲解Python脚本成为Windows中运行的exe文件
Jan 24 Python
详解pandas的外部数据导入与常用方法
May 01 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
python 计算两个列表的相关系数的实现
Aug 29 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 Python
Python导入模块包原理及相关注意事项
Mar 25 Python
Python ini文件常用操作方法解析
Apr 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静态类的原罪详解
2013/05/06 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
PHP 读取和编写 XML
2014/11/19 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
jQuery实现的无缝广告图片左右滚动功能详解
2016/12/24 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
nodejs 使用 js 模块的方法实例详解
2018/12/04 NodeJs
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
vue项目使用$router.go(-1)返回时刷新原来的界面操作
2020/07/26 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
tensorflow实现加载mnist数据集
2018/09/08 Python
浅谈python3.6的tkinter运行问题
2019/02/22 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
成品仓管员岗位职责
2013/12/11 职场文书
初二政治教学反思
2014/01/12 职场文书
创业计划书——互联网商机
2014/01/12 职场文书
教导处工作制度
2014/01/18 职场文书
银行自荐信怎么写
2015/03/05 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
钱学森电影观后感
2015/06/04 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android