mnist数据集保存为图片

#coding: utf-8
from tensorflow.examples.tutorials.mnist import input_data
import scipy.misc
import os
import numpy as np

# 读取MNIST数据集。如果不存在会事先下载。
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

# 我们把原始图片保存在MNIST_data/raw/文件夹下
# 如果没有这个文件夹会自动创建
train_set_save_dir = 'MNIST_data/raw/train/'
test_set_save_dir = 'MNIST_data/raw/test/' 

if os.path.exists(train_set_save_dir) is False:
    os.makedirs(train_set_save_dir)

if os.path.exists(test_set_save_dir) is False:
    os.makedirs(test_set_save_dir)

n_classes = 10
train_set_dirs = []
test_set_dirs = []
train_file = []
test_file = []
    
for i in range(0, n_classes):
    train_dir = train_set_save_dir + str(i) + "/"
    train_set_dirs.append(train_dir)
    test_dir = test_set_save_dir + str(i) + "/"
    test_set_dirs.append(test_dir)
    
    train_file.append([])
    test_file.append([])
    
    if os.path.exists(train_dir) is False:
        os.makedirs(train_dir)
    if os.path.exists(test_dir) is False:
        os.makedirs(test_dir)

print(mnist.train.images.shape)
print(mnist.test.images.shape)
print(mnist.train.labels.shape)
print(mnist.test.labels.shape)

print(mnist.train.labels[0:10])
print(np.argmax(mnist.train.labels[0:10,:], axis=1))

trainImageCounts = mnist.train.images.shape[0]
testImageCounts = mnist.test.images.shape[0]

#exit()

# 保存训练集图片
for i in range(0, trainImageCounts):
    # 
    classIndex = np.argmax(mnist.train.labels[i], axis=0)
    
   
    train_file[classIndex].append('mnist_train_%d.jpg' % i)
    #continue
    
    # 保存文件的格式为 mnist_train_0.jpg, mnist_train_1.jpg, ... ,mnist_train_19.jpg
    #filename = train_set_save_dir + 'mnist_train_%d.jpg' % i
    filename = train_set_dirs[classIndex] + 'mnist_train_%d.jpg' % i
    
    # 请注意,mnist.train.images[i, :]就表示第i张图片(序号从0开始)
    image_array = mnist.train.images[i, :]
    
    # TensorFlow中的MNIST图片是一个784维的向量,我们重新把它还原为28x28维的图像。
    image_array = image_array.reshape(28, 28)
    
    
    # 将image_array保存为图片
    # 先用scipy.misc.toimage转换为图像,再调用save直接保存。
    scipy.misc.toimage(image_array, cmin=0.0, cmax=1.0).save(filename)
    
    
# 保存测试集图片
for i in range(0, testImageCounts):
    # 
    classIndex = np.argmax(mnist.test.labels[i], axis=0)
    
    
    test_file[classIndex].append('mnist_test_%d.jpg' % i)
    #continue
    
    # 保存文件的格式为 mnist_train_0.jpg, mnist_train_1.jpg, ... ,mnist_train_19.jpg
    #filename = test_set_save_dir + 'mnist_test_%d.jpg' % i
    filename = test_set_dirs[classIndex] + 'mnist_test_%d.jpg' % i
  
    # 请注意,mnist.test.images[i, :]就表示第i张图片(序号从0开始)
    image_array = mnist.test.images[i, :]
    
    # TensorFlow中的MNIST图片是一个784维的向量,我们重新把它还原为28x28维的图像。
    image_array = image_array.reshape(28, 28)
    
    # 将image_array保存为图片
    # 先用scipy.misc.toimage转换为图像,再调用save直接保存。
    scipy.misc.toimage(image_array, cmin=0.0, cmax=1.0).save(filename)

for i in range(0, n_classes):
    trainLabelFile = open(train_set_dirs[i] + "list.txt", "w")
    for picFlie in train_file[i]:
        trainLabelFile.write(picFlie + "\n")
    trainLabelFile.close()

    testLabelFile = open(test_set_dirs[i] + "list.txt", "w")
    for picFlie in test_file[i]:
        testLabelFile.write(picFlie + "\n")
    testLabelFile.close()

print('Please check: %s ' % train_set_save_dir)
print('Please check: %s ' % test_set_save_dir)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值