yuantn/MI-AOD

关于初始化X_U数据集使用

qhemu opened this issue · 2 comments

qhemu commented

您好,非常感谢您的工作。关于初始化X_U数据集的使用有个疑问期望能得到解答。

数据集初始通过get_X_L_0(cfg):划分了5%X_L及同等数量的X_U,这是不是意味着在接下来的主动学习流程中,训练除了使用了5%的labeled数据集,也将5%初始化的X_U参与到了【一个active_cycle的一个epoch中,reweight Maximizing+Minimizing】流程中,而在loss计算中L_wave_max和L_wave_min似乎同样用到了X_U的gt bbox+cls?
谢谢您,祝好。

您好,感谢对我们工作的关注。

epoch_based_runner.pyclear_gt_label 函数中,我们已经将未标注的 X_Uy_loc_img 部分置为 -1。

mmdet/models/dense_heads/MIAOD_head.pyL_wave_min 函数和 L_wave_max 函数中,我们在 y_loc_img 为 -1 时将分类与定位相关的 loss (l_det_clsl_det_loc) 置为 0,使其不参与模型的反向传播过程,实际上相当于没有边界框的真值参与训练。

祝好


Hello, thank you for your attention to our work.

In the Function clear_gt_label of epoch_based_runner.py, we have set y_loc_img of unlabeled X_U to 1.

In the Function L_wave_min and Function L_wave_max of mmdet/models/dense_heads/MIAOD_head.py, when y_loc_img is -1, we set the classification loss and regression loss (l_det_cls and l_det_loc) to 0, so that they will not be involved in the back propagation of the model, which is actually equivalent to no ground-truth of bounding box participating in the training.

Best regards,

qhemu commented

明白了,非常感谢