import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
#from tensorflow.examples.tutorials.mnist import input_data
import input_data
print ("packs loaded")
print ("Download and Extract MNIST dataset")
mnist = input_data.read_data_sets('data/', one_hot=True)# one_hot=True 编码格式是01编码的
print
print (" tpye of 'mnist' is %s" % (type(mnist)))
print (" number of trian data is %d" % (mnist.train.num_examples))
print (" number of test data is %d" % (mnist.test.num_examples))
What does the data of MNIST look like? type of 'trainimg' is <class 'numpy.ndarray'> type of 'trainlabel' is <class 'numpy.ndarray'> type of 'testimg' is <class 'numpy.ndarray'> type of 'testlabel' is <class 'numpy.ndarray'> shape of 'trainimg' is (55000, 784)#55000是数据量,784是像素大小 shape of 'trainlabel' is (55000, 10)#10是分类的结果是10分类 shape of 'testimg' is (10000, 784) shape of 'testlabel' is (10000, 10)
# What does the data of MNIST look like?
print ("What does the data of MNIST look like?")
#通过下面的方法进行分割
trainimg = mnist.train.images
trainlabel = mnist.train.labels
testimg = mnist.test.images
testlabel = mnist.test.labels
print
print (" type of 'trainimg' is %s" % (type(trainimg)))
print (" type of 'trainlabel' is %s" % (type(trainlabel)))
print (" type of 'testimg' is %s" % (type(testimg)))
print (" type of 'testlabel' is %s" % (type(testlabel)))
print (" shape of 'trainimg' is %s" % (trainimg.shape,))
print (" shape of 'trainlabel' is %s" % (trainlabel.shape,))
print (" shape of 'testimg' is %s" % (testimg.shape,))
print (" shape of 'testlabel' is %s" % (testlabel.shape,))
# How does the training data look like?
print ("How does the training data look like?")
nsample = 5
randidx = np.random.randint(trainimg.shape[0], size=nsample)
for i in randidx:
curr_img = np.reshape(trainimg[i, :], (28, 28)) # 28 by 28 matrix
curr_label = np.argmax(trainlabel[i, :] ) # Label
plt.matshow(curr_img, cmap=plt.get_cmap('gray'))
plt.title("" + str(i) + "th Training Data "
+ "Label is " + str(curr_label))
print ("" + str(i) + "th Training Data "
+ "Label is " + str(curr_label))
plt.show()
# Batch Learning?
print ("Batch Learning? ")
batch_size = 100#一捆一捆训练,一般为2的次幂数 64,128等
batch_xs, batch_ys = mnist.train.next_batch(batch_size)#训练完就开始下一个训练,batch_xs, batch_ys,分别是样本和对应的标签的值
print ("type of 'batch_xs' is %s" % (type(batch_xs)))
print ("type of 'batch_ys' is %s" % (type(batch_ys)))
print ("shape of 'batch_xs' is %s" % (batch_xs.shape,))
print ("shape of 'batch_ys' is %s" % (batch_ys.shape,))