tensorflow实现手写数字识别(MNIST)

手写数字图片数字集
      机器学习需要从数据中间学习,因此首先需要采集大量的真实样本数据。以手写的数字图片识别为例,我们需要收集大量的由真人书写的0-9的数字图片,为了便于存储和计算,一般把收集的原始图片缩放到某个固定的大小(Size或Shape),比如224个像素的行和224个像素的列(224x 224),或者96个像素的行和96个像素的列(96x 96),这张图片将作为输入数据x。同时,我们需要给每一张图片标注一个标签(Label),它将作为图片的真实值y,这个标签表明这张图片属-一个具体的类别,一般通过映射方式将类别名–对应到从0开始编号的数字,比如说硬币的正反面,我们可以用0来表示硬币的反面,用1来表示硬币的正面,当然也可以反过来1表示硬币的反面,这种编码方式叫作数字编码(Number Encoding)。对于手写数字图片识别问题,编码更为直观,我们用数字的0-9表示类别为0-9的的图片。

      现在我们来看下图片的表示方法。一张图片包含了h行(HeightRow), w列(Width/Column),每个位置保存了像(Pixel)值,像素值一般使用0-255的整形数值来表达颜色强度信息,例如0表示强度最低,255 表示强度最高。如果是彩色图片,则每个像素点包含了R、G、B三个通道的强度信息,分别代表红色通道、绿色通道、蓝色通道的颜色强度,所以与灰度图片不同,它的每个像素点使用一个 1维、长度为3的向量(Vector)来表示,向量的3个元素依次代表了当前像素点上面的R、G、B颜色强值,因此彩色图片需要保存为形状是[h, w, 3]的张量(Tensor,可以通俗地理解为3维数组)。如果是灰度图片,则使用一个数值来表示灰度强度,例如0表示纯黑,255

你可能感兴趣的:(重学深度学习,tensorflow,python)