基于TensorFlow识别MNIST手写数字
李健民

李健民

某医学AI公司

擅长:临床研究设计和分析
已关注
关注
2020-08-25 来源:医咖会

人工智能和大数据结合的系列课程我们已经出了四期:

1、写给医生的人工智能体验课(一):作为医生,怎么跟进人工智能不落伍?

2、写给医生的人工智能体验课(二):用比喻的方式形象讲解神经网络

3、写给医生的人工智能体验课(三):利用SPSS、R、python建立简单的神经网络

4、写给医生的人工智能体验课(四):基于scikit-learn识别导入的图像

今天继续讲解第五课:基于TensorFlow识别MNIST手写数字。

从专栏的第三篇开始就是代码为主,手机阅读起来并不轻松,建议同学们还是从医咖会官网下载好数据集和代码,亲自跑一遍就会深刻很多。在上节课中,我们引入了手写数字图片数据,这些数据其实是大名鼎鼎的MNIST数据集的一部分。

MNIST是一个非常有名的手写体数字识别数据集,在很多资料中,这个数据集都会被用作深度学习的入门样例。它是由0 到9 的数字图像构成的。完整的MNIST有训练图像6 万张,测试图像1 万张。在TensorFlow 中,又将原先的60000 张训练图片重新划分成了新的55000张训练图片和5000张验证图片。

所以在mnist 对象中,数据一共分为三部分:mnist.train 是训练图片数据, mnist. validation 是验证图片数据,mnist.test是测试图片数据,这正好对应了机器学习中的训练集、验证集和测试集

一般来说,会在训练集上训练模型,通过模型在验证集上的表现调整参数,最后通过测试集确定模型的性能。正如上节课展示的一样,每张图片都由一个28×28 的矩阵表示,每张图片都由一个784 维的向量表示(28*28=784),处理后的每一张图片是一个长度为784的一维数组,这个数组中的元素对应了图片像素矩阵中的每一个数字。