发新帖

MNIST里面那些图长什么样子?

[复制链接]
234 2

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
本帖最后由 crayfish 于 2018-4-16 23:04 编辑

一直很好奇MNIST里面那些图长什么样子,输出来看看一睹为快!

载入MNIST数据集

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
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
%matplotlib inline
import matplotlib.pyplot as plt

载入mnist的test数据集的第一张图片,弄成28X28的矩阵

im = mnist.test.images[0].reshape(28, 28)

原来是一个手写的7

plt.imshow(im, cmap=plt.cm.gray)
plt.show()

output_7_0.png

第二个是手写的2,写的不怎么漂亮 :)

im = mnist.test.images[1].reshape(28, 28)
plt.imshow(im, cmap=plt.cm.gray)

output_9_1.png

这么看太慢,一次来10个数字吧 ~

fig, ax = plt.subplots(nrows=2,ncols=5 )
ax = ax.flatten()
for i in range(10):
    img = mnist.test.images[i].reshape(28, 28)
    ax[i].imshow(img, cmap=plt.cm.gray)
    ax[i].set_xticks([])
    ax[i].set_yticks([])
plt.show()

output_11_0.png

还是不痛快?那就来25个!

fig, ax = plt.subplots(nrows=5,ncols=5)
ax = ax.flatten()
for i in range(25):
    img = mnist.test.images[i].reshape(28, 28)
    ax[i].imshow(img, cmap=plt.cm.gray)
    ax[i].set_xticks([])
    ax[i].set_yticks([])
plt.show()

output_13_0.png

不得不说,好多数字真的写的太丑了,丑到人眼难以识别……真是难为机器了……

看看这25个数的标签,顺便看看自己肉眼识别的对不对:)

for i in range(25):
    print(mnist.test.labels[i]) 
[ 0.  0.  0.  0.  0.  0.  0.  1.  0.  0.]
[ 0.  0.  1.  0.  0.  0.  0.  0.  0.  0.]
[ 0.  1.  0.  0.  0.  0.  0.  0.  0.  0.]
[ 1.  0.  0.  0.  0.  0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  1.  0.  0.  0.  0.  0.]
[ 0.  1.  0.  0.  0.  0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  1.  0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  1.]
[ 0.  0.  0.  0.  0.  1.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  1.]
[ 1.  0.  0.  0.  0.  0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.  0.  1.  0.  0.  0.]
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  1.]
[ 1.  0.  0.  0.  0.  0.  0.  0.  0.  0.]
[ 0.  1.  0.  0.  0.  0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.  1.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  1.]
[ 0.  0.  0.  0.  0.  0.  0.  1.  0.  0.]
[ 0.  0.  0.  1.  0.  0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  1.  0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  1.]
[ 0.  0.  0.  0.  0.  0.  1.  0.  0.  0.]
[ 0.  0.  0.  0.  0.  0.  1.  0.  0.  0.]
[ 0.  0.  0.  0.  0.  1.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  1.  0.  0.  0.  0.  0.]

不太直观?那就直接把标签弄成数字。

from operator import mod
for i in range(25):
    x = mnist.test.labels[i]
    y = list(x)
    for j in range(10):
        if y[j] == 1.0:
            print(str(j) +' ', end='')
            if mod(i+1,5) == 0:
                print('\n')
7 2 1 0 4 

1 4 9 5 9 

0 6 9 0 1 

5 9 7 3 4 

9 6 6 5 4 

自己做了下肉眼识别测试,居然错了一个。。。第23个数字是6 ??我怎么觉得是个 4 ……

参考资料:

https://www.cnblogs.com/mjk961/p/7805743.html

https://blog.csdn.net/simple_the_best/article/details/75267863

https://www.cnblogs.com/lizheng114/p/7439556.html

本楼点评(0) 收起

精彩评论2

舟3332  TF芽芽  发表于 2018-4-17 05:55:57 来自手机  | 显示全部楼层
哈哈
本楼点评(0) 收起
zhanys_7  TF荚荚  发表于 2018-7-3 18:14:48 | 显示全部楼层
有几个数字人类都分不清
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

快速回复 返回顶部 返回列表