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 相关文章推荐
Django中更新多个对象数据与删除对象的方法
Jul 17 Python
Python利用Beautiful Soup模块搜索内容详解
Mar 29 Python
Python SQL查询并生成json文件操作示例
Aug 17 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
Feb 12 Python
Python中的字符串切片(截取字符串)的详解
May 15 Python
Flask框架学习笔记之使用Flask实现表单开发详解
Aug 12 Python
django-rest-swagger的优化使用方法
Aug 29 Python
wxPython实现画图板
Aug 27 Python
python科学计算之scipy——optimize用法
Nov 25 Python
Python定时任务APScheduler原理及实例解析
May 30 Python
python爬取天气数据的实例详解
Nov 20 Python
Python爬虫实战之爬取携程评论
Jun 02 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
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
JavaScript基础知识之方法汇总结
2016/01/24 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
javascript中replace使用方法总结
2017/03/01 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
Vue内部渲染视图的方法
2019/09/02 Javascript
JS实现压缩上传图片base64长度功能
2019/12/03 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
关于Js中new操作符的作用详解
2021/02/21 Javascript
python中MySQLdb模块用法实例
2014/11/10 Python
python爬虫入门教程--利用requests构建知乎API(三)
2017/05/25 Python
python 调用win32pai 操作cmd的方法
2017/05/28 Python
django+echart数据动态显示的例子
2019/08/12 Python
python实现三种随机请求头方式
2021/01/05 Python
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
校园招聘策划书
2014/01/09 职场文书
置业顾问岗位职责
2014/03/02 职场文书
冬季施工防火方案
2014/05/17 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
先进党支部事迹材料
2014/12/24 职场文书
催款通知书范文
2015/04/17 职场文书
音乐会主持人开场白
2015/05/28 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python