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 07 Python
python端口扫描系统实现方法
Nov 19 Python
Python获取Windows或Linux主机名称通用函数分享
Nov 22 Python
Python中的__slots__示例详解
Jul 06 Python
Python加密方法小结【md5,base64,sha1】
Jul 13 Python
pycharm远程调试openstack的图文教程
Nov 21 Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 Python
python实现多线程端口扫描
Aug 31 Python
Pytorch 使用不同版本的cuda的方法步骤
Apr 02 Python
在 Python 中使用 MQTT的方法
Aug 18 Python
python时间time模块处理大全
Oct 25 Python
Python中递归以及递归遍历目录详解
Oct 24 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文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
PHP中常用数组处理方法实例分析
2008/08/30 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
thinkphp分页实现效果
2016/10/13 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
25个非常棒的jQuery滑块插件和教程小结
2011/09/02 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
window.returnValue使用方法示例介绍
2014/07/03 Javascript
javascript中的this详解
2014/12/08 Javascript
Javascript的闭包详解
2014/12/26 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
原生JS实现留言板
2020/03/26 Javascript
用vue写一个日历
2020/11/02 Javascript
python实现员工管理系统
2018/01/11 Python
Python(Django)项目与Apache的管理交互的方法
2018/05/16 Python
pytorch permute维度转换方法
2018/12/14 Python
Python3最长回文子串算法示例
2019/03/04 Python
python实现在一个画布上画多个子图
2020/01/19 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
《鸟岛》教学反思
2014/04/26 职场文书
实验室安全管理制度
2015/08/05 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers