深度学习,教你使用Tensorflow2.0识别手写数字(上)

课前知识

   新版的Tensorflow2.0与原版的Tensorflow有着较大的更新和变动,Tensorflow2.0将Keras作为默认高级API,并舍弃掉其它的API。此外,另外较大的变动的是将用于机器学习的实验和研究平台 Eager execution 设置为默认优先模式, 这样设置的好处是我们不用再像以前一样预先定义静态图,任何的运算在调用之后都可以直接执行。与原版相比,Tensorflow2.0更方便,大幅降低了初学者学习的难度。

   这里并不对Tensorflow2.0的其它特性做具体描述,总之我们可以比较清楚的明白,Keras是我们学习的首要基础,下文便是对Keras一些常用操作结合一些基本案例来进行描述。

Tensorflow2.0的安装

1.Tensorflow2.0的主要配置环境及使用还是在Anaconda及Jupyter notebook里,对于Anaconda的安装这里不做过多描述,有很多博客有很仔细的教程,这里主要想讲的一点的关于Tensorflow2.0安装的点,因为现在用在Anaconda Prompt 直接 pip install 指令安装实在是太慢了,经常会中断,因此我们可以用国内的一些镜像源进行安装,大家可以输入以下指令,中间多了一个网站,然后就会发现安装速度特别快了,其它库的安装也是一样的,把后面库的名字改掉即可。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.0.0-alpha0

 

MNIST 数据集已经是一个被”嚼烂”了的数据集, 很多教程都会对它”下手”, 几乎成为一个 “典范”. 不过有些人可能对它还不是很了解, 下面来介绍一下.

MNIST 数据集可在 http://yann.lecun.com/exdb/mnist/ 获取, 它包含了四个部分:

Training set images: train-images-idx3-ubyte.gz (9.9 MB, 解压后 47 MB, 包含 60,000 个样本)Training set labels: train-labels-idx1-ubyte.gz (29 KB, 解压后 60 KB, 包含 60,000 个标签)Test set images: t10k-images-idx3-ubyte.gz (1.6 MB, 解压后 7.8 MB, 包含 10,000 个样本)Test set labels: t10k-labels-idx1-ubyte.gz (5KB, 解压后 10 KB, 包含 10,000 个标签)

MNIST 数据集来自美国国家标准与技术研究所, National Institute of Standards and Technology (NIST). 训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普查局 (the Census Bureau) 的工作人员. 测试集(test set) 也是同样比例的手写数字数据.

利用TensorFlow代码下载MNIST

TensorFlow 提供了一个库,可以直接用来自动下载与安装MNIST, 见如下代码:

from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("MNIST_data", one_hot=True)

其中"MNIST_data"为保存MNIST数据的文件夹名,其中还会遇到

ModuleNotFoundError: No module named 'tensorflow.examples.tutorials'

这个问题,则需要参考小编博客的处理文章:

https://blog.csdn.net/qq_43060552/article/details/103189040

 

MNIST 数据集中的图片

MNIST 数据集中的图片是28X 28 Pixel, 所以,每一幅图就是1 行784 ( 28X28) 列

的数据, 括号中的每一个值代表一个像素。

• 如果是黑白的图片,图片中黑色的地方数值为0 ; . 有图案的地方,数值为O r-,....; 255

之间的数字, 代表其颜色的深度。

• 如果是彩色的图片, 一个像素会由3 个值来表示RGB C 红、黄、蓝) 。

输出MNIST 里面的信息

代码:

# -*- coding: utf-8 -*-"""Created on Thu Nov 21 16:38:15 2019
@author: Cable-Ching"""from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("MNIST_data", one_hot=True)print ( ' 输入数据:', mnist.train.images)print ( ' 输入数据打shape :', mnist.train.images.shape)import pylabim = mnist.train.images[1]im = im.reshape(-1 ,28)pylab.imshow(im)pylab.show()

结果​​​​​​​

Extracting MNIST_data\train-images-idx3-ubyte.gzExtracting MNIST_data\train-labels-idx1-ubyte.gzExtracting MNIST_data\t10k-images-idx3-ubyte.gzExtracting MNIST_data\t10k-labels-idx1-ubyte.gz 输入数据:[[0. 0. 0. ... 0. 0. 0.] [0. 0. 0. ... 0. 0. 0.] [0. 0. 0. ... 0. 0. 0.] ... [0. 0. 0. ... 0. 0. 0.] [0. 0. 0. ... 0. 0. 0.] [0. 0. 0. ... 0. 0. 0.]] 输入数据打shape : (55000, 784)

——————想跟着博主学习python,tensorflow可以关注微信公众号  :   码奋

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值