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爬虫之抓取百度贴吧代码分享
Nov 06 Python
python通过pil模块将raw图片转换成png图片的方法
Mar 16 Python
python 时间戳与格式化时间的转化实现代码
Mar 23 Python
Python实现简单的语音识别系统
Dec 13 Python
python实现随机梯度下降(SGD)
Mar 24 Python
python实现指定文件夹下的指定文件移动到指定位置
Sep 17 Python
python Django里CSRF 对应策略详解
Aug 05 Python
Flask框架学习笔记之使用Flask实现表单开发详解
Aug 12 Python
Python异常原理及异常捕捉实现过程解析
Mar 25 Python
PyQt5 控件字体样式等设置的实现
May 13 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
Jun 28 Python
解决pytorch 保存模型遇到的问题
Mar 03 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
根德YB400的电路分析
2021/03/02 无线电
php使用sql server验证连接数据库的方法
2014/12/25 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
php事件驱动化设计详解
2016/11/10 PHP
让焦点自动跳转
2006/07/01 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
2015/04/03 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
Vue2.0结合webuploader实现文件分片上传功能
2018/03/09 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
2019/04/01 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
vue实现前端分页完整代码
2020/06/17 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
tensorflow实现KNN识别MNIST
2018/03/12 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
利用python3 的pygame模块实现塔防游戏
2019/12/30 Python
Python用SSH连接到网络设备
2021/02/18 Python
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
小孩百日宴答谢词
2014/01/15 职场文书
九年级体育教学反思
2014/01/23 职场文书
年终晚会活动方案
2014/08/21 职场文书
电力培训学习心得体会
2016/01/11 职场文书
Python爬虫基础之简单说一下scrapy的框架结构
2021/06/26 Python
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript