官方文档传送门

MNIST数据集是手写数字0~9的数据集,一般被用作机器学习领域的测试,相当于HelloWorld级别。

本程序先从网上导入数据,再利用最小梯度法进行训练使得样本交叉熵最小,最后给出训练之后程序的准确率。

交叉熵的定义:

y 是我们预测的概率分布, y' 是实际的分布。

该指标用来衡量学习结果与实际情况的差距。

import tensorflow.examples.tutorials.mnist.input_data as input_data
import tensorflow as tf
#initialize
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x,W) + b)
y_ = tf.placeholder("float", [None,10])
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
#train
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
for i in range(1000):batch_xs, batch_ys = mnist.train.next_batch(100)sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
#predict
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

先用placeholder和variable初始化。

placeholder(占位符)一般用于导入数据,而Variable一般是与学习过程相关的变量。

之后,启动Session进行训练,本程序当中随机选取了100张图片进行训练。

最后运行的准确率为91.49%.

/home/jcole/PycharmProjects/MNIST-HelloWorld/venv/bin/python /home/jcole/PycharmProjects/MNIST-HelloWorld/venv/MNIST.py
WARNING:tensorflow:From /home/jcole/PycharmProjects/MNIST-HelloWorld/venv/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/datasets/base.py:198: retry (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.
Instructions for updating:
Use the retry module or similar alternatives.
WARNING:tensorflow:From /home/jcole/PycharmProjects/MNIST-HelloWorld/venv/MNIST.py:4: read_data_sets (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use alternatives such as official/mnist/dataset.py from tensorflow/models.
WARNING:tensorflow:From /home/jcole/PycharmProjects/MNIST-HelloWorld/venv/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:260: maybe_download (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.
Instructions for updating:
Please write your own downloading logic.
WARNING:tensorflow:From /home/jcole/PycharmProjects/MNIST-HelloWorld/venv/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/datasets/base.py:219: retry.<locals>.wrap.<locals>.wrapped_fn (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.
Instructions for updating:
Please use urllib or similar directly.
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Extracting MNIST_data/train-images-idx3-ubyte.gz
WARNING:tensorflow:From /home/jcole/PycharmProjects/MNIST-HelloWorld/venv/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:262: extract_images (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use tf.data to implement this functionality.
WARNING:tensorflow:From /home/jcole/PycharmProjects/MNIST-HelloWorld/venv/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:267: extract_labels (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use tf.data to implement this functionality.
WARNING:tensorflow:From /home/jcole/PycharmProjects/MNIST-HelloWorld/venv/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:110: dense_to_one_hot (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Instructions for updating:
Please use tf.one_hot on tensors.
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Extracting MNIST_data/train-labels-idx1-ubyte.gz
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Extracting MNIST_data/t10k-images-idx3-ubyte.gz
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
WARNING:tensorflow:From /home/jcole/PycharmProjects/MNIST-HelloWorld/venv/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py:290: DataSet.__init__ (from tensorflow.contrib.learn.python.learn.datasets.mnist) is deprecated and will be removed in a future version.
Extracting MNIST_data/t10k-labels-idx1-ubyte.gz
Instructions for updating:
Please use alternatives such as official/mnist/dataset.py from tensorflow/models.
WARNING:tensorflow:From /home/jcole/PycharmProjects/MNIST-HelloWorld/venv/lib/python3.5/site-packages/tensorflow/python/util/tf_should_use.py:118: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use `tf.global_variables_initializer` instead.
2018-04-23 16:27:25.917321: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
0.9149Process finished with exit code 0

Tensorflow初探之MNIST数据集学习相关推荐

  1. 基于tensorflow+RNN的MNIST数据集手写数字分类

    2018年9月25日笔记 tensorflow是谷歌google的深度学习框架,tensor中文叫做张量,flow叫做流. RNN是recurrent neural network的简称,中文叫做循环 ...

  2. MNIST数据集学习

    第一章提到,最常见的监督式学习任务包括回归任务(预测值)和分类任务(预测类). 第二章探讨了一个回归任务–预测住房价格,用到了线性回归.决策树以及随机森林等各种算法(我们会在后续章节中进一步讲解这些算 ...

  3. tensorflow 自编码器 MNIST数据集

    写在前头 这段时间在学习利用tensorflow编写自编码器代码,在B站上看到了一个教学视频,觉得很有用,但很遗憾视频的画质和声音都有点渣,UP主也没有提供源代码,我在网上搜了下,也没找到,因此自己根 ...

  4. 北京大学曹健——Tensorflow笔记 05 MNIST数据集输出手写数字识别准确率

              # 前向传播:描述了网络结构 minist_forward.py # 反向传播:描述了模型参数的优化方法 mnist_backward.py # 测试输出准确率minist_tes ...

  5. tensorflow(七)实现mnist数据集上图片的训练和测试

    本文使用tensorflow实现在mnist数据集上的图片训练和测试过程,使用了简单的两层神经网络,代码中涉及到的内容,均以备注的形式标出. 关于文中的数据集,大家如果没有下载下来,可以到我的网盘去下 ...

  6. 主成分分析降维(MNIST数据集)

    北京 | 高性能计算之GPU CUDA课程11月24-26日3天密集学习 快速带你晋级阅读全文> 刘凯欣,中国矿业大学在校学生,曾参加过ThoughtWorks举办的结对编程活动. 今天看了用主 ...

  7. 深度学习之利用TensorFlow实现简单的卷积神经网络(MNIST数据集)

    卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习 ...

  8. TensorFlow:实战Google深度学习框架(四)MNIST数据集识别问题

    第5章 MNIST数字识别问题 5.1 MNIST数据处理 5.2 神经网络的训练以及不同模型结果的对比 5.2.1 TensorFlow训练神经网络 5.2.2 使用验证数据集判断模型的效果 5.2 ...

  9. 深度学习4:使用MNIST数据集(tensorflow)

    本文将介绍MNIST数据集的数据格式和使用方法,使用到的是tensorflow中封装的类,包含代码. MNIST数据集来源于这里, 如果希望下载原始格式的数据集,可以从这里下载.而本文中讲解的是已经使 ...

最新文章

  1. 单摆运动属于什么现象_在学习高中物理中有什么好的经验可以分享?
  2. 织梦DeDE调用文章第一张图片的方法
  3. 堆栈中的EIP EBP ESP
  4. lazada开店平台费用都有哪些,产品如何来做定价?
  5. 数据挖掘具体技术——分类
  6. linux c进程和线程脑图,进程和线程
  7. mysql5.6.37免安装_mysql5.6免安装配置
  8. 开放源代码的软件测试工具
  9. How to create a DXL attribute using a DXL script
  10. xml文件怎么转换成wps_Office 12使用XML格式存储文件 正式回击WPS
  11. 背阔肌(06):T杠俯身划船
  12. 一年365天每天进步 5‰或1%和每天退步 5‰或1%最后的结果分别是多少
  13. 2019年计算机无纸化试题,2019年中级会计无纸化考试操作全攻略!机考常见问题大合集!...
  14. unity 3d iphone android 通用,在Unity3D中使用iPhone原生UI
  15. java数组显示_Java 1.5中显示数组
  16. POJ - 1723 Soldiers 士兵站队 排序+中位数
  17. 虚拟机安装ros时候出现“The directory ‘/home/xxx/.cache/pip‘...”的问题解决方法(亲测有用)
  18. 采用EM算法对高斯混合模型(GMM)进行参数估计
  19. 程序员升职记 全关卡攻略通俗思路 Human Resource Machine
  20. 细节决定成败!耗时两个礼拜,8000字安卓面试长文,全套教学资料

热门文章

  1. 【理论恒叨】【立体匹配系列】经典SGM:(3)代价聚合(Cost Aggregation)
  2. php 数组下标初始化,php中如何初始化一个数组 | 学步园
  3. 【论文笔记】Text Detoxification using Large Pre-trained Neural Models
  4. 20小时快速入门go语言视频 - Day5
  5. 【Vue】1308- Vue3 中可以帮助你早点下班的 9 个开发技巧
  6. 【华为机试真题详解 Python实现】统计差异值大于相似值二元组个数【2023 Q1 | 100分】
  7. Java生成Word文档并压缩导出。
  8. 我的世界工业服务器发展最快,《我的世界》中国版服务器快速发展攻略 发展思路及心得分享...
  9. 业力管理 - 当和尚遇到钻石续集
  10. 更精准地生成字幕!哥大Facebook提出Vx2Text:多模态融合,性能更强!