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 相关文章推荐
2款Python内存检测工具介绍和使用方法
Jun 01 Python
python使用marshal模块序列化实例
Sep 25 Python
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
Jul 12 Python
python的concat等多种用法详解
Nov 28 Python
Python常见的pandas用法demo示例
Mar 16 Python
Python中使用logging和traceback模块记录日志和跟踪异常
Apr 09 Python
pyqt5 使用label控件实时显示时间的实例
Jun 14 Python
python numpy数组复制使用实例解析
Jan 10 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
Mar 30 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 12 Python
python微信智能AI机器人实现多种支付方式
Apr 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
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
有趣的javascript数组定义方法
2010/09/10 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2013/10/24 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
vuex进阶知识点巩固
2018/05/20 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
python3生成随机数实例
2014/10/20 Python
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
TripAdvisor德国:全球领先的旅游网站
2017/12/07 全球购物
什么是三层交换,说说和路由的区别在那里
2014/09/01 面试题
银行柜员应聘推荐信范文
2013/11/24 职场文书
同学会邀请书大全
2014/01/12 职场文书
会计学专业学生的求职信范文
2014/01/27 职场文书
预备党员表决心书
2014/03/11 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
小学运动会加油稿
2015/07/22 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书