zoukankan      html  css  js  c++  java
  • MNIST多图显示--Python练习

    在学习TensorFlow框架时,提到用MNIST手写数字数据库进行练习,为了更直观看下里面的数据到底长啥样,用OpenCV(cv2)中的imshow函数来进行显示。

    默认已经安装: numpy、tensorflow、cv2

    1--首先是根据Tensorflow官网的方法获得数据库:

    1 from tensorflow.examples.tutorials.mnist import input_data
    2 mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

    现在mnist对象已经拥有MNIST数据库的训练集和测试集。

    2--进行单张显示比较容易,如下代码:

    1 import cv2
    2 # display one database image
    3 im = mnist.test.images[0].reshape(28, 28)
    4 cv2.imshow("demo", im)
    5 cv2.waitKey(0)
    6 cv2.destroyAllWindows()

    显示结果为:

    3--单张显示太单调(图像大小28x28),可以尝试多张网格排列显示。

    • 起先考虑从数据库中取出100张,然后根据取出顺序确定在哪行哪列,最后合成大图,但根据顺序直接确定该图像位置有点困难
    • 换个思路:先确定网格位置,再从数据库中选取一张插入,似乎简单了许多

     代码如下:

    import cv2
    import numpy as np
    
    #per row 10 patches, per col 10 patches
    BigIm = np.zeros((280, 280))
    index = 0
    for i in range(10):
        for j in range(10):
            temp = mnist.train.images[index].reshape(28, 28)
            BigIm[28*i:28*(i+1), 28*j:28*(j+1)] = temp
            index += 1
    
    cv2.imshow("demo", BigIm)
    cv2.waitKey(0)

    结果如下:

     看了数据库的样子,接下来可以愉快地进行深度学习了~

  • 相关阅读:
    DS博客作业07--查找
    第五次作业——05图
    第四次作业——04树
    DS博客作业03--栈和队列
    DS博客作业02--线性表
    DS博客作业01--日期抽象数据类型设计与实现
    C语言博客05--指针
    C语言博客作业04--数组
    DS博客作业08--课程总结
    C语言-第0次作业
  • 原文地址:https://www.cnblogs.com/mjk961/p/7805743.html
Copyright © 2011-2022 走看看