官方文档传送门

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. CF735E Ostap and Tree
  2. 通知 | “大数据能力提升项目”证书办理及领取(2021年秋季学期)
  3. BZOJ#3786. 星系探索(平衡树,fhq-treap,弱化版ETT)
  4. 计算机编程试讲教案,2016教师资格证面试试讲高中信息技术教案:QBASIC分支结构程序...
  5. 程序员必备英语单词册
  6. CentOS-6.3安装配置Nginx
  7. 又一知名教授在美被捕!饶毅发文声援,中方也回应了!
  8. 解决Chrome插件安装时出现的 “CRX_HEADER_INVALID” (程序包无效) 问题
  9. 使用计算机键盘的基本步骤,键盘指法练习方法
  10. 三星530换固态硬盘_速度与安全在指尖跳跃 三星移动固态硬盘T7 Touch评测
  11. Java疯狂讲义读书笔记第五章
  12. PHP怎么计算百分比?PHP计算百分比的写法
  13. javascript动态插入html元素
  14. cad二开之不通过netload加载命令(bundle文件的使用)
  15. win10专业版 1909 netkeeper错误代码137
  16. matplotlib的imshow在Python shell IDLE环境无法显示图像问题
  17. 【C语言算法】归并排序
  18. 跑步感到痛苦,试试超慢跑
  19. OSI(开放系统互联基本参考模型)七层结构及TCP/IP协议栈
  20. Tecnomatix Plant Simulation 2201

热门文章

  1. LBM学习记录5 Python实现IB二维圆柱绕流 1.0
  2. 超详细的的PyTorch安装教程,成功率高,适合初学者,亲测可用。
  3. RFID仓储管理系统的优势有哪些
  4. 爱因斯坦设计师AI支持大规模个性化设计
  5. [制作实践]一种基于LM2576的多功能开关电源设计
  6. idea 设置自动换行
  7. MOOG伺服阀D661-4652
  8. 记录一下最近android7.1.1编译出现的问题
  9. 工业互联网和边缘计算学习总结
  10. 小米手机更新新手机后天府通电信nfc卡无法检测解决步骤方法