blanclist / CDNet

MIT License
23 stars 2 forks source link

超参数设置 #2

Closed clelouch closed 3 years ago

clelouch commented 3 years ago

你好,在阅读你的文章和代码之后,我有一些问题想请教一下。 首先是,我在High_level_fusion class中发现hat_F_I_4, hat_F_I_5分别有2.0和1.7倍率的超参数设置,请问这里的超参数设置是怎样选择的,对最终的结果有多大的影响? 其次是,我自己在做网络训练时,也尝试过利用边缘信息进行附加的监督,不过我用的是bce损失,而且并没有发现有明显的性能提升。因为你在ablation study中并没有对这一部分做对比实验,所以我很好奇,你这里加入contour信息之后,大概能有多大的效果。 最后是,由于训练代码暂时没有公布,你这里对所有的损失项是采用了同样的权重吗?这里的损失项太多,感觉确定权重会比较麻烦。

blanclist commented 3 years ago

你好,在阅读你的文章和代码之后,我有一些问题想请教一下。 首先是,我在High_level_fusion class中发现hat_F_I_4, hat_F_I_5分别有2.0和1.7倍率的超参数设置,请问这里的超参数设置是怎样选择的,对最终的结果有多大的影响? 其次是,我自己在做网络训练时,也尝试过利用边缘信息进行附加的监督,不过我用的是bce损失,而且并没有发现有明显的性能提升。因为你在ablation study中并没有对这一部分做对比实验,所以我很好奇,你这里加入contour信息之后,大概能有多大的效果。 最后是,由于训练代码暂时没有公布,你这里对所有的损失项是采用了同样的权重吗?这里的损失项太多,感觉确定权重会比较麻烦。

您好,

  1. 在 high-level fusion 中,确实有两个超参数来控制不同级别的特征,并且这两个参数是根据我的调试经验确定的。不过,我发现在我自己的机器上训练的时候,设置成 2.0 和 1.7 会有比较好的效果,但在其它人的机器上训练时,反而其它的参数设置会比较好(可能与一些库的版本有关)。所以如果您不是特别追求 SOTA 的性能,将它们设置成 1.0 和 1.0 也是可以的。
  2. 我曾经也尝试过 bce 损失来对边缘信息监督,同样没有发现性能上的提升(也没有负面效果),后来我发现 l2 损失可以带来一些微弱的性能提升。在论文中,您可以从模型是否增加了 low-level fusion 来看到性能对比。但需要强调的是,这部分提升并不是很大(high-level 更加重要),并且对底层高分辨率特征进行额外地特征融合、监督会带来更多的时间消耗,所以是否增加边缘监督需要您自己考量。
  3. 目前我放出了训练代码,在 train-CN 分支下。由于我目前没什么时间,所以并没有完全注释这些代码,直接运行也可能会报错。但您可以从里面看到损失函数是怎样的、如何调整各损失间比例、以及深度监督具体都加在了哪里,希望这能帮助到您。
clelouch commented 3 years ago

非常感谢,祝好