转载请注明出处:http://blog.csdn.net/gamer_gyt
博主微博:http://weibo.com/234654758
Github:https://github.com/thinkgamer
MNIST是在机器学习领域中的一个经典问题。该问题解决的是把28x28像素的灰度手写数字图片识别为相应的数字,其中数字的范围从0到9.
数据集 | 目的 |
---|---|
data_sets.train | 55000 组 图片和标签, 用于训练。 |
data_sets.validation | 5000 组 图片和标签, 用于迭代验证训练的准确性。 |
data_sets.test | 10000 组 图片和标签, 用于最终测试训练的准确性。 |
数据集简介
MNIST数据集加载有两种办法,第一是直接从网上下载,第二是下载到本地进行load(跟第一种类似,只不过是事先下载好,从本地进行加载)。从网上下载到本地方式如下:
# 加载mnist数据集
from tensorflow.examples.tutorials.mnist import input_data
print("load finish")
mnist = input_data.read_data_sets("MNIST_data/",one_hot=True)
print(type(mnist))
输出为:
load finish
Extracting MNIST_data/train-images-idx3-ubyte.gz
Extracting MNIST_data/train-labels-idx1-ubyte.gz
Extracting MNIST_data/t10k-images-idx3-ubyte.gz
Extracting MNIST_data/t10k-labels-idx1-ubyte.gz
<class 'tensorflow.contrib.learn.python.learn.datasets.base.Datasets'>
补充:
MAC OS 下载Mnist数据集出错
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)>
原因:MAC OS自带安装的OpenSSL比较老,已经无法使用。
解决办法
# Python3.6以后,在命令行执行以下命令即可。
# https://qiita.com/orangain/items/0a641d980019fd7e0c52
/Applications/Python\ 3.6/Install\ Certificates.command
# 执行该命令前
$ ls -l /Library/Frameworks/Python.framework/Versions/3.6/etc/openssl/
# 执行该命令后
ls -l /Library/Frameworks/Python.framework/Versions/3.6/etc/openssl/
lrwxr-xr-x 1 cyan admin 52 2 23 11:27 cert.pem -> ../../lib/python3.6/site-packages/certifi/cacert.pem
print("MNIST 训练集数据条数:" ,mnist.train.num_examples)
print("MNIST 测试集数据条数:" ,mnist.test.num_examples)
train_img = mnist.train.images
train_label = mnist.train.labels
print("训练集类型:",type(train_img))
print("训练集维度:",train_img.shape)
test_img = mnist.test.images
test_label = mnist.test.labels
print("测试集类型:",type(test_img))
print("测试集维度:",test_img.shape)
输出为:
MNIST 训练集数据条数: 55000
MNIST 测试集数据条数: 10000
训练集类型: <class 'numpy.ndarray'>
训练集维度: (55000, 784)
测试集类型: <class 'numpy.ndarray'>
测试集维度: (10000, 784)
打开当前运行代码的目录,我们会发现一个MNIST_data的文件夹,里边包含的文件如下:
文件 | 内容 |
---|---|
train-images-idx3-ubyte.gz | 训练集图片 - 55000 张 训练图片, 5000 张 验证图片 |
train-labels-idx1-ubyte.gz | 训练集图片对应的数字标签 |
t10k-images-idx3-ubyte.gz | 测试集图片 - 10000 张 图片 |
t10k-labels-idx1-ubyte.gz | 测试集图片对应的数字标签 |
使用next_batch函数加载指定条数的数据集
# 关于next_batch函数
batchSize = 100
batch_x,batch_y = mnist.train.next_batch(batch_size=batchSize)
print(batch_x.shape)
print(batch_y.shape)
输出为:
(100, 784)
(100, 10)
扫一扫 关注微信公众号!号主 专注于搜索和推荐系统,尝试使用算法去更好的服务于用户,包括但不局限于机器学习,深度学习,强化学习,自然语言理解,知识图谱,还不定时分享技术,资料,思考等文章!