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 的 with 语句详解
Jun 13 Python
Python中__name__的使用实例
Apr 14 Python
Python的randrange()方法使用教程
May 15 Python
Python虚拟环境Virtualenv使用教程
May 18 Python
Python Sql数据库增删改查操作简单封装
Apr 18 Python
Python外星人入侵游戏编程完整版
Mar 30 Python
Python安装Numpy和matplotlib的方法(推荐)
Nov 02 Python
windows10下python3.5 pip3安装图文教程
Apr 02 Python
python矩阵/字典实现最短路径算法
Jan 17 Python
对python特殊函数 __call__()的使用详解
Jul 02 Python
Python3 合并二叉树的实现
Sep 30 Python
Python实现遗传算法(二进制编码)求函数最优值方式
Feb 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快速统计某个数据库中每张表的数据量
2012/09/04 PHP
php常用Stream函数集介绍
2013/06/24 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
PHP Include文件实例讲解
2019/02/15 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
JS对文本框值的判断示例
2014/03/10 Javascript
jquery图片切换插件
2015/03/16 Javascript
推荐10 个很棒的 jQuery 特效代码
2015/10/04 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
详解package.json版本号规则
2019/08/01 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
基于js实现数组相邻元素上移下移
2020/05/19 Javascript
Python中的闭包实例详解
2014/08/29 Python
python里大整数相乘相关技巧指南
2014/09/12 Python
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
Python 的AES加密与解密实现
2019/07/09 Python
wxpython布局的实现方法
2019/11/01 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
COACH德国官方网站:纽约现代奢侈品牌,1941年
2018/06/09 全球购物
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
大学毕业自我评价
2014/02/02 职场文书
酒店员工检讨书
2014/02/18 职场文书
王老吉广告词
2014/03/20 职场文书
伦敦奥运会的口号
2014/06/21 职场文书
食品安全演讲稿
2014/09/01 职场文书
伏羲庙导游词
2015/02/09 职场文书
大雁塔英文导游词
2015/02/10 职场文书