MINIST数据库 之 本地图片化

  • MINIST 数据库作为机器学习入门数据库之一, 被广泛使用. 其中包含了共70,001张手写字符0-9的28x28的图片. 原始的MINIST是以二进制形式发布的, 需要一系列的转换才能转化为本地图片. 不方便进行数据库扩展及数据库可视化. 本文将MINIST数据库进行了本地化. 方便后来者进行进一步的数据库扩展.
  • 本文利用了keras中自带的MINIST数据库,这个自带的数据库已经进行了train set 和test set的划分.因此,本文将相应的数据集保存到了本地.
  • 直接上代码:
  • import necessary packages
import os
import numpy as np
import matplotlib.pyplot as plt
from keras.datasets import mnist
from matplotlib.image import imsave
import itertools
  • get the data which has been shuffled and split between train and test sets.
# the data, shuffled and split between tran and test sets
(X_train, y_train), (X_test, y_test) = mnist.load_data()
print("X_train original shape", X_train.shape)
print("y_train original shape", y_train.shape)
  • results: 此处可以看到, 训练集6w张图片.
    image.png
  • show some demons
for i in range(9):
    plt.subplot(3,3,i+1)
    plt.imshow(X_train[i], cmap='gray', interpolation='none')
    plt.title("Class {}".format(y_train[i]))

image.png
* the destination folder structure we tend to use:
外层结构:
image.png
内层结构
image.png
* 对训练集的处理: 图片名称从0开始编号.

image_counter = itertools.count(0)
for image, label in zip(X_train, y_train):
    dest_folder = os.path.join(train_path, str(label))
    image_name = next(image_counter)
    image_path = os.path.join(dest_folder, str(image_name)+'.png')

    if not os.path.exists(dest_folder):
        os.mkdir(dest_folder)

    imsave(image_path, image, cmap = 'gray')  
  • 对测试集图片的处理:图片接着训练集编号.
for image, label in zip(X_test, y_test):
    dest_folder = os.path.join(test_path, str(label))
    image_name = next(image_counter)
    image_path = os.path.join(dest_folder, str(image_name)+'.png')

    if not os.path.exists(dest_folder):
        os.mkdir(dest_folder)

    imsave(image_path, image, cmap = 'gray')    
  • 结果:
    image.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值