【深度学习】数据集打标签:生成train.txt和val.txt
当我们在Github上下载一篇论文的代码后,我们如何在自己的数据集上进行复现呢?这是在百度爬的十分类的服装数据集,其中train文件夹下每类大概300张,val文件夹下每类大概100张,总共在4000张左右。
当我们在Github上下载一篇论文的代码后,我们如何在自己的数据集上进行复现呢?
准备自己的数据集
这是在百度爬的十分类的服装数据集,其中train文件夹下每类大概300张,val文件夹下每类大概100张,总共在4000张左右。
设置目录
我们将taming作为根目录,在taming下新建data-->myself,再在myself下新建两个子文件夹, train 和 val,即训练集和测试集。然后在 train 文件夹下新建十个文件夹down jacket,flare skirt,hoody,jeans,jump suit,jump suit,miniskirt,overall,sport pant,sweater和T-shirt。val下也是同样这十个文件夹。每个分类文件夹下大概100张图片,总共大约4000张,至此,我们准备好了原始的数据集。
生成 train.txt 和 val.txt 文件,即训练集和验证集列表清单
在根目录taming下新建examples,在examples下新建myself 文件夹,在myself下新建create_filelist.sh文件用于存放配置文件(可运行下面的代码也可自己手创建)。
cd ~/taming/
sudo mkdir examples/myself
# 在 taminge 根目录下进行操作,这是默认的,也是良好的习惯
sudo gedit examples/myself/create_filelist.sh
目录
编辑 create_filelist.sh 脚本文件,输入以下内容:
DATA=/tmp/taming/data/myself
MY=/tmp/taming/examples/myself
#DATA是数据集路径,MY是sh脚本路径,也要改成你自己的,如果是按照我上面的步骤创建的文件夹,就不用修改。
#这里将文件夹名称换成你们自己,注意观察数据集图片的后缀我的是.jpeg格式
echo "Create train.txt..."
rm -rf $DATA/train.txt
find $DATA/train/downjacket -name "*.jpeg" >>$MY/train.txt
find $DATA/train/flareskirt -name "*.jpeg" >>$MY/train.txt
find $DATA/train/hoody -name "*.jpeg" >>$MY/train.txt
find $DATA/train/jeans -name "*.jpeg" >>$MY/train.txt
find $DATA/train/jumpsuit -name "*.jpeg" >>$MY/train.txt
find $DATA/train/miniskirt -name "*.jpeg" >>$MY/train.txt
find $DATA/train/overall -name "*.jpeg" >>$MY/train.txt
find $DATA/train/sportpant -name "*.jpeg" >>$MY/train.txt
find $DATA/train/sweater -name "*.jpeg" >>$MY/train.txt
find $DATA/train/Tshirt -name "*.jpeg" >>$MY/train.txt
echo "All done"
#
#
#
#
#
echo "Create val.txt..."
rm -rf $DATA/val.txt
find $DATA/val/downjacket -name "*.jpeg" >>$MY/val.txt
find $DATA/val/flareskirt -name "*.jpeg" >>$MY/val.txt
find $DATA/val/hoody -name "*.jpeg" >>$MY/val.txt
find $DATA/val/jeans -name "*.jpeg" >>$MY/val.txt
find $DATA/val/jumpsuit -name "*.jpeg" >>$MY/val.txt
find $DATA/val/miniskirt -name "*.jpeg" >>$MY/val.txt
find $DATA/val/overall -name "*.jpeg" >>$MY/val.txt
find $DATA/val/sportpant -name "*.jpeg" >>$MY/val.txt
find $DATA/val/sweater -name "*.jpeg" >>$MY/val.txt
find $DATA/val/Tshirt -name "*.jpeg" >>$MY/val.txt
#这里一定要注意是双箭头>>,单箭头的话不会换行,只会执行一行的文件夹
echo "All done"
#制作结束,all done
代码解释:
rm -rf $DATA/train.txt 表示清除该路径下的train.txt文件
find $DATA/train/downjacket-name "*.jpeg" 此处为find指令的用法。查找此目录下所有的jpeg图片
$DATA/train/downjacket 表示具体的图片路径
*.jpeg 表示在该目录下得所有jpeg图片
$MY/train.txt 表示在/examples/myself/路径下产生train.txt,以上内容全部保存到此。
运行:
1.cd到create_filelist.sh的上级目录:
cd /tmp/taming/examples/myself
2.运行create_filelist.sh:
执行./create_filelist.sh
这一步如果提示没有权限要先添加权限:chmod u+x create_filelist.sh,之后运行./create_filelist.sh
3.之后就会在/taming/examples/myself目录下(和create_filelist.sh同级)生成train.txt和val.txt文件:
train.txt内容为:
大约3012行,即十个文件夹都实现了遍历生成
然后就可以加载进我们的模型进行训练了......
更多推荐
所有评论(0)