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 21 Python
python中map()函数的使用方法示例
Sep 29 Python
python+matplotlib绘制旋转椭圆实例代码
Jan 12 Python
浅谈python正则的常用方法 覆盖范围70%以上
Mar 14 Python
详解Django rest_framework实现RESTful API
May 24 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
简单了解Python3里的一些新特性
Jul 13 Python
vscode 配置 python3开发环境的方法
Sep 19 Python
python中安装django模块的方法
Mar 12 Python
spyder 在控制台(console)执行python文件,debug python程序方式
Apr 20 Python
python3访问字典里的值实例方法
Nov 18 Python
python 基于opencv 绘制图像轮廓
Dec 11 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学习教程之第2天
2008/06/15 PHP
PHPCMS的使用小结
2010/09/20 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
表单验证的完整应用案例探讨
2013/03/29 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
VUE实现吸底按钮
2021/03/04 Vue.js
Python编写一个闹钟功能
2017/07/11 Python
谈谈python中GUI的选择
2018/03/01 Python
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
python url 参数修改方法
2018/12/26 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
广告学专业应届生求职信
2013/10/01 职场文书
高中毕业生个人自我鉴定
2013/11/24 职场文书
服装厂厂长职责
2013/12/16 职场文书
高三英语教学反思
2014/01/13 职场文书
《称象》教学反思
2014/04/25 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
有关环保的标语
2014/06/13 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
Golang 编译成DLL文件的操作
2021/05/06 Golang
如何自己动手写SQL执行引擎
2021/06/02 MySQL
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android