1.MNIST的例子可以从Tensorflow的官方网站(http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html)上找到。首先做了里面的一个简单的回归例子就开始了MNIST之旅。
2.首先要下载MNIST手写数字的例子,官网上提供的自动下载数据的程序链接崩了,可以从参考网址( Yann LeCun's MNIST page)上直接下载数据。有个更简单的方法,Pycharm安装了Tensorflow之后所有代码都包含在库里面了,可以直接导入那部分代码。
from tensorflow.examples.tutorials.mnist import input_data # mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
3.我们下载的数据并没有使用标准的图片格式储存,因此无法直接打开(由于是二进制文件,可以采用二进制文件的打开方式)
print('load the image :', filename) bfile = open(filename, 'rb') buf = bfile.read()
根据官网上对文件的描述,可以自行写代码将文件转换为BMP或者其他格式图片。
##读取一张图片 # im = struct.unpack_from('>784B' ,buf, offset) #'>784B'的意思就是用大端法读取784个unsigned byte # offset += struct.calcsize('>784B') # im = np.array(im) # im = im.reshape(28,28) # print ("load imgs finished") # # fig = plt.figure() # plotwindow = fig.add_subplot(111) # plt.imshow(im, cmap='gray') # plt.show()
4.将原始文件解压和重构后(当然这一步可以直接使用官网提供的代码),就可以开始跑模型了。