走进tensorflow第十步——手写数字识别中的input_data模块

本来想来个综合的大程序,刚写了点发现东西较多,那就一点点整吧,东西太杂容易懵圈。。

在前几篇中的手写数字识别中一开始都有这么两句代码:

from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets('./mnist', one_hot=True) 

先来看看具体其真实面目,找到其github路径:

这是一个12w+的项目:

其代码很少:

"""Functions for downloading and reading MNIST data."""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

# pylint: disable=unused-import
import gzip
import os
import tempfile

import numpy
from six.moves import urllib
from six.moves import xrange  # pylint: disable=redefined-builtin
import tensorflow as tf
from tensorflow.contrib.learn.python.learn.datasets.mnist import read_data_sets
# pylint: enable=unused-import

最后一行非注释代码引入了 read_data_sets方法,来看看它长啥样,同样要找到其路径:

read_data_sets方法代码较长,现只展示其参数:

def read_data_sets(train_dir,
                   fake_data=False,
                   one_hot=False,
                   dtype=dtypes.float32,
                   reshape=True,
                   validation_size=5000,
                   seed=None,
                   source_url=DEFAULT_SOURCE_URL)

我们用到的是第一个和第三个参数,第一个参数设置路径,该路径下如果存在mnist数据集则直接加载,否则先下载数据集再加载,当然如果该路径不存在则自动创建对应目录;第二个参数为设置one_hot,直白点说就是用0或1去描述图片上的数字,只能有一个1,它在哪一位就代表数字几,其他位均为0。

之前做手写数字识别时都是下载好数据集放到对应的文件夹中,这次直接让它自建,运行程序后发现在程序所在同级目录中出现了mnist文件夹,其中已有对应的数据集:

在控制台可以看到其过程:

Extracting ./mnist\train-images-idx3-ubyte.gz
Extracting ./mnist\train-labels-idx1-ubyte.gz
Extracting ./mnist\t10k-images-idx3-ubyte.gz
Extracting ./mnist\t10k-labels-idx1-ubyte.gz

 
 

 

 

你可能感兴趣的:(AI)