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模块之re正则表达式详解
Feb 03 Python
使用python实现生成用户信息
Mar 20 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
May 04 Python
详解如何在Apache中运行Python WSGI应用
Jan 02 Python
Python数据结构与算法(几种排序)小结
Jun 22 Python
python定义类self用法实例解析
Jan 22 Python
解决python Jupyter不能导入外部包问题
Apr 15 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 Python
关于探究python中sys.argv时遇到的问题详解
Feb 23 Python
pytorch 两个GPU同时训练的解决方案
Jun 01 Python
详解Python内置模块Collections
Mar 22 Python
使用Python通过企业微信应用给企业成员发消息
Apr 18 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 静态化实现代码
2009/03/20 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
php实现的xml操作类
2016/01/15 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
2017/02/06 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
在AngularJS框架中处理数据建模的方式解析
2016/03/05 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
Vue keep-alive实践总结(推荐)
2017/08/31 Javascript
javascript中的隐式调用
2018/02/10 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
Python字符遍历的艺术
2008/09/06 Python
Python用GET方法上传文件
2015/03/10 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
加工操作管理制度
2014/01/19 职场文书
优秀信贷员先进事迹
2014/01/31 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
辞职信范文大全
2015/03/02 职场文书
教学质量月活动总结
2015/05/11 职场文书
单位更名证明
2015/06/18 职场文书
2016企业先进集体事迹材料
2016/02/25 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript