参考的这篇https://blog.csdn.net/z704630835/article/details/82017892博客的一小小部分
直接用了博客里面的load_data()
读入之后挑了一些打印成图片 看看样子~~~
import os
import numpy as np
import matplotlib.pyplot as plt
def load_data(data_path):
'''
函数功能:导出MNIST数据
输入: data_path 传入数据所在路径(解压后的数据)
输出: train_data 输出data
train_label 输出label
'''
f_data = open(os.path.join(data_path, 'train-images.idx3-ubyte'))
loaded_data = np.fromfile(file=f_data, dtype=np.uint8)
#前16个字符为说明符,需要跳过
train_data = loaded_data[16:].reshape((-1, 784)).astype(np.float)
f_label = open(os.path.join(data_path, 'train-labels.idx1-ubyte'))
loaded_label = np.fromfile(file=f_label, dtype=np.uint8)
#前8个字符为说明符,需要跳过
train_label = loaded_label[8:].reshape((-1)).astype(np.float)
return train_data, train_label
if __name__ == '__main__':
train_data,train_label = load_data('xxxxxxx/minst')
# 把下载好的minst数据集 放在xxxxxxx/minst文件夹里面;填入路径即可
print np.shape(train_data)
# (60000, 784)
print np.shape(train_label)
# (60000,)
for i in range(5):
img = train_data[i].reshape(28,28)
# 变成二维图片
plt.imshow(img)
plt.show()
print train_label[i]
# 输出了前五个图片 及其标签
哟呵哟呵
不是说标签是一个长度为10的向量么??
我以为标签是向量啊 每个位置的值代表这个图片为该位置对应数字的出现概率呢。。。
来源:https://blog.csdn.net/weixin_39389001/article/details/100668991