获取png格式的MNIST数据集

# 原始数据来自:
# https://github.com/myleott/mnist_png
# 但是这个数据的放置效果是这样的:

显然不好用.

于是进行转化,目标是所有图片都放在一起,然后生成一个"图片和类别名字对应"的train.csv

这样,MNIST数据格式就和kaggle比赛中的一致了.

新建一个origin文件夹,把train中上述所有文件夹剪切放入origin

然后运行以下代码,得到train.csv


import os
import pandas as pd
from pandas.core.frame import DataFrame


#根据每个文件夹分别生成一个csv文件用来记录png图片和类别之间的关系
path="./origin/"

train_df = pd.DataFrame(columns = ["pic_name", "label"]) 

for folder in os.listdir(path):
    sub_folder=path+folder
    #获得某个类别下面的所有文件列表,然后存入一个csv
    file_lists=[f for f in os.listdir(sub_folder) if os.path.isfile(os.path.join(sub_folder, f))]
    # print("file_lists=",file_lists)
    labels=list(folder)*len(file_lists)#生成类别
    c={"pic_name":file_lists,"label":labels}
    data=DataFrame(c)
    train_df=pd.concat([train_df,data],ignore_index=True)
    # data.to_csv(folder+".csv",index=False)



train_df.to_csv("train.csv",index=False)  
#合并所有的csv,得到train.csv
    

然后所有文件从origin下面剪切到train中混合在一起,命令如下:

mv origin/*/*.png train/

由于MNIST中的test是验证集的意思,所以需要把上述步骤对test也操作一遍.

 

好了,最终结果如下:

https://github.com/appleyuchi/MNIST_PNG

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值