目的:我要做实验!替换数据集实验!
需求:将代码中数据集替换成自己的数据集!
系统:windows也行,linux也行,有一些区别,可以私信,我绝不会说简单!其他人的一句简单,我TM做了半天。
我讲的顺序是:
- 如何制作固定尺寸大小的图片,如28*28,32*32
- 如何制作txt,txt中包含图片名称+空格+类别
- 如何制作类似mnist、cifar数据集
首先,你需要一堆图片,这是基础
这些图片大小和名称随意。
1、如何制作固定尺寸大小的图片数据集(截图不易,我比较懒,就用语言描述)
文件夹叫reshape_png,作用就是重新构建图片的大小!文件中有两个空的文件夹(一级),test-images和train-images,这两个文件夹(一级)是用来存放数据的!重点讲一下如何存放数据,别的博客大都没讲,太不负责了!我讲!以train-images为例,你需要在下面放n个文件夹(二级),n代表的是你所想要将图片分类的类数,这个文件夹(二级)的名你随意取,没有关系,然后每个文件夹(二级)下放置对应的图片!图片名称随意,建议,尽量别取一样!后面你会理解。哦对了,
接下来,文件夹中有一个文件叫resize-script.sh,他的作用是将任意大小的图片变成32*32,你可以自行修改,修改就是重新打开sh文件,然后将32*32改成你想要的尺寸即可,运行方式:在linux系统下,打开命令端,输入sh resize-script.sh即可运行,你会发现所有图片的位置和名称都没有变,只有大小变了!这个重新构建图片大小就讲完了!
2、如何制作txt,txt中包含图片名称+空格+类别
处理完上述一步,我们要给数据建立txt文件了。
不同数据集不同的格式是最麻烦的,这个你自行领悟。
在creat_txt_dataset文件夹中有main.py文件,还有4个空文件夹:training-images、test-images、train、test文件,首先我们可以将刚才我们固定尺寸的数据集的文件(二级文件夹,就是上面那张含0,1,2,3,4的图),直接拷到training-images、test-images俩文件夹下,或者你直接将training-images、test-images俩文件拷过来一样。打开终端,运行main.py即可,我是python3的环境。然后你就会发现生成了两个名叫train.txt和test.txt的记事本。你打开看看,就会发现里面是文件名+空格+类标,这个类标和你的文件名(二级)没有半毛钱关系。对了,那个train和test文件的用处见3,如何制作数据集!
你非要看图?就是这样!
好了,现在你也生成了这样的txt文件,这一节就讲完了。
哦,之间插播一个方法,如何快速重命名文件名称,尤其是大规模数据!
这个直接用file_rename文件,里面有一个main.py函数,直接运行它即可,对了运行前你要改一下里面的文件路径,还有你想要图片名称,算法默认输出文件名称为:1_1.png、1_2.png、1_3.png、1_4.png、1_5.png
3如何制作类似mnist、cifar数据集
这个最麻烦了,因为这两数据集不一样!我的建议,你好好学习torchvision中的ImageFolder方法,上Pytorch手册上学
首先介绍mnist,你要知道最后生成四个文件就可以了
在creat_dataset_mnist这个文件夹下有一个main.py,你把上面那个training-images、test-images文件复制过来运行一下,就可以出来,注意,这里是单通道,即只能是黑白图,为啥呢,因为mnist是黑白的,你想要彩色的咋办呢?改代码,第33行道第35行,你加一个for循环里面带有color,如何加,我给忘了,估计想不起来了,因为这个数据集没用到。
我竟然想起来了!!!
在那个33行前面加上:for color in range(0,3),然后在35行的append()里面修改成(pixel[y,x][color])即可实现彩色图像转化
下面重点介绍cifar数据集如何制作。
我所看到的cifar数据集,在pytorch中保存的格式是二进制,具题里面有哪些参数,什么fine_labels、images等等,这些我一概不讲,因为篇幅问题!
制作这个啊,需要用到2中的train和test文件,这个文件里面有啥呢?需要就是图片和txt文件。
但是怎么保存呢?训练图片在train文件中随便放,顺序随意,但是里面的txt文件就有讲究了,txt文件中第一列要放图片的名称,第二列要放对应的类别,你看一下2中的图,对就是那样!怎么做你看2!
打开creat_dataset_cifar,之后你需要运行demo.py即可!哦,对了,这里面你要修改data里面的文件,我怕你下载过慢,把里面的大部分图片都删了,生成的文件在bin中,生成以后你修改一下名称!就是train和test二进制文件!那个meta文件我没用所以没有做!我也不会做!没研究过!
最近有点事情,需要相关文件的私聊!
已经上传到了博客文件,github那个太麻烦以后有时间再上传哈~
哦,博客你搜索:make_dataset.rar,就可以出来