做一个类似Fashion-MNIST的数据集

本文介绍如何参照Fashion-MNIST的数据格式,用Python制作类似的数据集,并提供解压及导入像素数据的代码。通过编写模块,使数据格式适应卷积神经网络的读取,达到与MNIST数据集转换后的效果相似。
摘要由CSDN通过智能技术生成

按照Fashion-MNIST的数据格式制作,上代码

import os
from PIL import Image
from array import *
from random import shuffle
import sys
# import numpy as np

#change the pixel about images
def changePixel(dir_in, width, height, dir_out):
    image = Image.open(os.path.join(dir_in))
    resized_image = image.resize((width, height), Image.ANTIALIAS)
    resized_image.save(os.path.join(dir_out))
    
# 从自己的数据集导入,制作成MNIST格式导出保存
Names = [['./data/XXXX_train_images','data/XXXX_minist_train'], 
         ['./data/XXXX_test_images','data/XXXX_minist_test']]

for name in Names:

    data_image = array('B')
    data_label = array('B')

    FileList = []
#     for dirname in os.listdir(name[0])[1:]: # [1:] Excludes .DS_Store from Mac OS
#         path = os.path.join(name[0],dirname)
#         print(path)
#         for filename in os.listdir(path):
#             print(filename + "this is filename")
#             if filename.endswith(".png"):
#                 FileList.append(os.path.join(name[0],dirname,filename))
                
    for filename in os.listdir(name[0]):
#         print(filename + " this is filename")
        if filename.endswith(".png"):
            FileList.append(os.path.join(name[0],filename))
    
    #打乱顺序对本案例没有什么作用
    shuffle(FileList)

    for filename in FileList:
#         print(type(filename.split('\\')[2]))
#         label = int(filename.split('\\')[2])
        
        #change the pixel about images into 256x256
        width = 256
        height = 256
        
        changePixel(filename, width, height, filename)
        
        
#         label = filename.split('\\')[2]
# #         print(label)
        label = filename.split('\\')[1]
        WithoutPNG_label = int(filename.split('\\')[1].split('.')[0]) #把.png去掉才能int
        #使用len得到长度后,-4,即减去.png,这样就不需要split('.'),避免拆分小数
#         label_len = len(filename)
#         print(filename)
#         WithoutPNG_label = float(filename[:label_len - 4].split('\\')[1]) #把.png去掉才能int
        print(WithoutPNG_label)

#         Im = Image.open(filename)
        Im = Image.open(filename).convert('L')  #默认支持黑白图片,因此修改灰度值

        pixel 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值