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中的len()函数的使用
Apr 07 Python
初步理解Python进程的信号通讯
Apr 09 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
pygame实现俄罗斯方块游戏
Jun 26 Python
使用Python生成200个激活码的实现方法
Nov 22 Python
Python文件操作方法详解
Feb 09 Python
pycharm如何实现跨目录调用文件
Feb 28 Python
解决python 执行sql语句时所传参数含有单引号的问题
Jun 06 Python
Python select及selectors模块概念用法详解
Jun 22 Python
基于selenium及python实现下拉选项定位select
Jul 22 Python
基于python实现操作git过程代码解析
Jul 27 Python
python切割图片的示例
Nov 12 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
Ajax PHP 边学边练 之三 数据库
2009/11/26 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
use jscript with List Proxy Server Information
2007/06/11 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
2013/11/12 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
使用JS画图之点、线、面
2015/01/12 Javascript
js实现照片墙功能实例
2015/02/05 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
Python编程入门的一些基本知识
2015/05/13 Python
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
诚信承诺书模板
2014/05/26 职场文书
python实现会员管理系统
2022/03/18 Python
idea下配置tomcat避坑详解
2022/04/12 Servers
pandas时间序列之pd.to_datetime()的实现
2022/06/16 Python