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单例模式与metaclass
Jan 15 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
Jul 11 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
Jan 02 Python
python解析html提取数据,并生成word文档实例解析
Jan 22 Python
python实现关键词提取的示例讲解
Apr 28 Python
python MNIST手写识别数据调用API的方法
Aug 08 Python
Python多线程原理与用法详解
Aug 20 Python
解决Tensorflow sess.run导致的内存溢出问题
Feb 05 Python
PyQt5中向单元格添加控件的方法示例
Mar 24 Python
Django全局启用登陆验证login_required的方法
Jun 02 Python
Python利用myqr库创建自己的二维码
Nov 24 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 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学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
PHP的运行机制与原理(底层)
2015/11/16 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
Laravel重写用户登录简单示例
2016/10/08 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
Javascript Global对象
2009/08/13 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
基于jquery自定义图片热区效果
2012/07/21 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
jquery 显示*天*时*分*秒实现时间计时器
2014/05/07 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
JavaScript中的比较操作符>、=、
2014/12/31 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
javascript中for/in循环及使用技巧
2015/09/01 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
node.js中使用Export和Import的方法
2017/09/18 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python操作xml文件详细介绍
2014/06/09 Python
python中的闭包用法实例详解
2015/05/05 Python
Python pass详细介绍及实例代码
2016/11/24 Python
简单了解Python中的几种函数
2017/11/03 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
python创建学生成绩管理系统
2019/11/22 Python
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
马来西亚综合购物网站:Lazada马来西亚
2018/06/05 全球购物
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
一套Delphi的笔试题一
2016/02/14 面试题
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
git中cherry-pick命令的使用教程
2022/06/25 Servers