看过好多机器学习的例子,里面都有加载MNIST数据的方式,于是就好奇MNIST里面的数据究竟长什么样子?于是自己就从加载数据的函数开始,将加载的数据以图片的形式展示出来。
思路:
- 加载数据读取模块:import tensorflow.examples.tutorials.mnist.input_data as input_data
- 使用input_data.read_data_sets加载MNIST数据
- 使用.train.next_batch()函数读取具体的训练集数据
- 使用np.reshape()函数将训练数据图片化
- 使用cv2.imshow()函数显示图片
代码:
import cv2
import numpy as np
import tensorflow as tf
import tensorflow.examples.tutorials.mnist.input_data as input_data
mnist_data= input_data.read_data_sets("MNIST/",one_hot=True)
print(mnist_data)
for i in range(10):
x,y=mnist_data.train.next_batch(1) # 为方便转换图片,一次只读取一张
img=np.reshape(x[0],[28,28])
cv2.imshow("image", img)
print('\n输出结果:',y[0],'\n类型:',type(y[0]),'\n图片标签:',np.argwhere(y[0]==1)[0][0])
cv2.waitKey(0)
cv2.destroyWindow('image')
以上代码每次都会展示不同的数字,是因为read_data_sets函数在读取MNIST数据库内容时是随机选择的。如果不想随机选择,可以将read_data_sets函数的参数seed赋值为整数即可(seed代表随机数种子,其默认值为None)。格式如下:
mnist_data= input_data.read_data_sets("MNIST/",one_hot=True,seed=1)