tensorflow学习笔记之简单的神经网络训练和测试


Posted in Python onApril 15, 2018

本文实例为大家分享了用简单的神经网络来训练和测试的具体代码,供大家参考,具体内容如下

刚开始学习tf时,我们从简单的地方开始。卷积神经网络(CNN)是由简单的神经网络(NN)发展而来的,因此,我们的第一个例子,就从神经网络开始。

神经网络没有卷积功能,只有简单的三层:输入层,隐藏层和输出层。

数据从输入层输入,在隐藏层进行加权变换,最后在输出层进行输出。输出的时候,我们可以使用softmax回归,输出属于每个类别的概率值。借用极客学院的图表示如下:

tensorflow学习笔记之简单的神经网络训练和测试

其中,x1,x2,x3为输入数据,经过运算后,得到三个数据属于某个类别的概率值y1,y2,y3. 用简单的公式表示如下:

tensorflow学习笔记之简单的神经网络训练和测试

在训练过程中,我们将真实的结果和预测的结果相比(交叉熵比较法),会得到一个残差。公式如下:

tensorflow学习笔记之简单的神经网络训练和测试

y是我们预测的概率值,y'是实际的值。这个残差越小越好,我们可以使用梯度下降法,不停地改变W和b的值,使得残差逐渐变小,最后收敛到最小值。这样训练就完成了,我们就得到了一个模型(W和b的最优化值)。

完整代码如下:

import tensorflow as tf
import tensorflow.examples.tutorials.mnist.input_data as input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
x = tf.placeholder(tf.float32, [None, 784])
y_actual = tf.placeholder(tf.float32, shape=[None, 10])
W = tf.Variable(tf.zeros([784,10]))    #初始化权值W
b = tf.Variable(tf.zeros([10]))      #初始化偏置项b
y_predict = tf.nn.softmax(tf.matmul(x,W) + b)   #加权变换并进行softmax回归,得到预测概率
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_actual*tf.log(y_predict),reduction_indies=1))  #求交叉熵
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)  #用梯度下降法使得残差最小

correct_prediction = tf.equal(tf.argmax(y_predict,1), tf.argmax(y_actual,1))  #在测试阶段,测试准确度计算
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))        #多个批次的准确度均值

init = tf.initialize_all_variables()
with tf.Session() as sess:
  sess.run(init)
  for i in range(1000):        #训练阶段,迭代1000次
    batch_xs, batch_ys = mnist.train.next_batch(100)      #按批次训练,每批100行数据
    sess.run(train_step, feed_dict={x: batch_xs, y_actual: batch_ys})  #执行训练
    if(i%100==0):         #每训练100次,测试一次
      print "accuracy:",sess.run(accuracy, feed_dict={x: mnist.test.images, y_actual: mnist.test.labels})

每训练100次,测试一次,随着训练次数的增加,测试精度也在增加。训练结束后,1W行数据测试的平均精度为91%左右,不是太高,肯定没有CNN高。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过urllib2爬网页上种子下载示例
Feb 24 Python
python开发之IDEL(Python GUI)的使用方法图文详解
Nov 12 Python
Python变量和数据类型详解
Feb 15 Python
python基本语法练习实例
Sep 19 Python
python GUI实例学习
Nov 21 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
python批量识别图片指定区域文字内容
Apr 30 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
Python zip函数打包元素实例解析
Dec 11 Python
Django app配置多个数据库代码实例
Dec 17 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
Dec 07 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
Feb 23 Python
Pytorch入门之mnist分类实例
Apr 14 #Python
pytorch构建网络模型的4种方法
Apr 13 #Python
Python输入二维数组方法
Apr 13 #Python
Python基于递归实现电话号码映射功能示例
Apr 13 #Python
Python的多维空数组赋值方法
Apr 13 #Python
python多维数组切片方法
Apr 13 #Python
Python实现判断并移除列表指定位置元素的方法
Apr 13 #Python
You might like
php adodb分页实现代码
2009/03/19 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
基于JavaScript 声明全局变量的三种方式详解
2013/05/07 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
当某个文本框成为焦点时即清除文本框内容
2014/04/28 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
AngularJS压缩JS技巧分析
2016/11/08 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
angular2路由切换改变页面title的示例代码
2017/08/23 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
2017/08/23 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
vue组件间通信六种方式(总结篇)
2019/05/15 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
python Matplotlib模块的使用
2020/09/16 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
财务会计专业推荐信
2013/11/30 职场文书
主题酒店策划书
2014/01/28 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
综治工作汇报材料
2014/10/27 职场文书
置业顾问岗位职责
2015/02/09 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS