关于使用Dassl注册自己的数据集
向Dassl中添加自己的数据集
最近第一次使用dassl做域适应工作,发现dassl在域适应领域是一个常见的工具,以此记录。
一.简单介绍Dassl
Dassl是一个pytorch工具箱,用于支持领域自适应与泛化性的研究。
二.向Dassl中加入自己的数据集
1.按照Dassl中已有的数据集来准备自己的数据集
举个例子,我这里参考office_home的结构来准备自己的数据集:
office_home的结构为主文件里包含四个域的子文件,每个子文件下又有各个类别文件,类别文件中存储jpg格式的图片。(无标签文件,可能因为我参考的文章做的是无监督。如果需要有监督学习请自己去根据对应的数据集自行准备。)
2.将准备好的数据集文件放在datasets目录中
3.按照自己参考制作数据集的文件,准备注册.py文件
这里博主调代码的时候给Dassl.pytorch/dassl/data/datasets/da/目录下与参考文章的项目代码…/datasets/下都放了注册用的py文件,大家在调试过程中可以尝试一下哪个是没必要放的。
里面包含的代码片段:
@DATASET_REGISTRY.register()
class OfficeHome(DatasetBase):
注册用的py文件中第一句代码就是用于注册你准备好的数据集的
注意!这个py文件写好后不需要单独运行,这个是和你的项目文件一起运行的。
3.在train.py中导入你准备好的py文件中数据集的类名
如上面的代码块,class OfficeHome,
需要在train.py中使用:
from dassl.data.datasets import OfficeHome
导入你的类名,否则会报 注册列表中没有你的数据集名称 的错误。
ok到这里基本已经成功了。
要义就是你需要找一个dassl已有的数据集来准备自己的数据集,然后别忘了train.py文件的导入。
希望这条博客能帮助到你!