Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请教使用自定义数据集测试的问题 #55

Open
canglangzhige opened this issue May 19, 2023 · 8 comments
Open

请教使用自定义数据集测试的问题 #55

canglangzhige opened this issue May 19, 2023 · 8 comments

Comments

@canglangzhige
Copy link

您好,非常感谢您的工作!

我使用voc数据集训练模型,想在自己的数据集上进行测试。我的数据集包含6个类别,请问我应该怎样操作呢?目前我是分了6个文件夹,每个文件夹包含一个类别。

期待您的回复。

@chunbolang
Copy link
Owner

您好,感谢对我们工作的关注。
修改数据读取部分即可。需要注意的地方有:

  1. 图像-掩码对路径
  2. 注释掉基类标注读取
  3. 获得当前任务二值掩码

祝好,

@canglangzhige
Copy link
Author

您好,感谢对我们工作的关注。 修改数据读取部分即可。需要注意的地方有:

1. 图像-掩码对路径

2. [注释](https://github.com/chunbolang/BAM/blob/main/util/dataset.py#L216)掉基类标注读取

3. 获得当前任务[二值掩码](https://github.com/chunbolang/BAM/blob/main/util/dataset.py#LL237C53-L237C53)

祝好,

谢谢您的耐心解答。

第3条,获得当前任务的二值掩码,需要注意的地方是指?

另,如果只是测试的话(6类)

  1. 是否我只需要提供 self.sub_val_list = [1,2,3,4,5,6],而不需要提供 self.sub_list,或者令二者一样即可。
  2. 代码中
    fss_data_list_path = fss_list_root + 'data_list_{}.txt'.format(split) fss_sub_class_file_list_path = fss_list_root + 'sub_class_file_list_{}.txt'.format(split)
    分别指什么?
  3. 我不需要分split?

再次表示感谢!

@chunbolang
Copy link
Owner

第3条关于当前任务的二值掩码需要注意您提供的样本是否为单类别(同一幅图是否含有多种语义),如果是则不需要随机选取类别获得相应掩码,因为掩码是确定的。

  1. 如果您只想测试的话sub_list可以不使用。如果同一幅图含有多种语义则需要提供sub_val_list。
  2. 这部分是获得用于训练的样本,方便按类别进行索引。您可以通过这部分以及这部分代码尝试构建。
  3. 不需要。但要注意基类的选取很大程度会影响您在自建数据集上的性能。

@canglangzhige
Copy link
Author

师兄,再请教一下。
使用我自己的数据集进行测试,为什么要注释掉基类标注的读取?
网络模型是应用到了基类的标注啊?

@chunbolang
Copy link
Owner

训练base_learner用到了,如果直接测试的话没有基类标注也没事,有新类标注作为评估就可以了。

@canglangzhige
Copy link
Author

canglangzhige commented May 24, 2023

训练base_learner用到了,如果直接测试的话没有基类标注也没事,有新类标注作为评估就可以了。

师兄我还是不太明白,验证数据集的返回中是有基类标注的啊:
elif self.mode == 'val':
return image, label, label_b, s_x, s_y, subcls_list, raw_label, raw_label_b
在test.py和BAM.py中也用到了基类的标注:
for i, (input, target, target_b, s_input, s_mask, subcls, ori_label, ori_label_b) in enumerate(val_loader):
def forward(self, x, s_x, s_y, y_m, y_b, cat_idx=None):
我需要将所有涉及基类的地方都修改吗?

@chunbolang
Copy link
Owner

随机生成一个tensor占位就好了~

@hhzxy
Copy link

hhzxy commented Jun 1, 2023

您好,方便留一下邮箱吗,我们的数据类别差不多,想和你交流一下

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants