当我们在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行,即十个文件夹都实现了遍历生成

 然后就可以加载进我们的模型进行训练了......

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐