• 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)

    结果如下:

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

  • 相关阅读:
    git 命令参考手册 git中文命令参考手册大全
    php常用命令大全
    freemarker中的list 前端模板
    jquery-懒加载技术(简称lazyload)
    JavaScript跨域总结与解决办法 什么是跨域
    Ajax+Spring MVC实现跨域请求(JSONP)JSONP 跨域
    jQuery- v1.10.2 源码解读
    css技巧
    前端异常捕获与上报
    兼容性/pollyfill/shim/渐进增强/优雅降级
  • 原文地址:https://www.cnblogs.com/mjk961/p/7805743.html
Copyright © 2020-2023  润新知