MesoNet-Pytorch icon indicating copy to clipboard operation
MesoNet-Pytorch copied to clipboard

你好发现代码BUG,导致测试时的效果远不如训练时的效果

Open chaoyu1999 opened this issue 2 years ago • 3 comments

定义模型时,在两个地方用了同一个bn,这会导致运行model.eval()测试时和训练时的准确率相差甚远。 image

chaoyu1999 avatar Jul 30 '22 04:07 chaoyu1999

定义模型时,在两个地方用了同一个bn,这会导致运行model.eval()测试时和训练时的准确率相差甚远。 image

请问这是为何呢?

A1ita99 avatar Feb 15 '23 12:02 A1ita99

定义模型时,在两个地方用了同一个bn,这会导致运行model.eval()测试时和训练时的准确率相差甚远。 image

请问这是为何呢?

每个卷积层后面接的bn层不能一样。因为每个bn层会学习各自独立的参数,不能共享。

chaoyu1999 avatar Feb 15 '23 12:02 chaoyu1999

请问这是为何呢?

每个卷积层后面接的bn层不能一样。因为每个bn层会学习各自独立的参数,不能共享。

我也考虑过这个问题,但是我发现MesoInceptionNet也是重复使用了同一个BN层,训练和测试的结果都有90%+。MesoNet后面那两层也有重复使用了另一个通道数16的BN层,我把它们修改成不一样的,测试时和训练时的准确率也是相差甚远。修改您说的这里,使用2个不同的BN层,MesoNet测试时和训练时的准确率就都挺好的。 神奇。

A1ita99 avatar Feb 15 '23 13:02 A1ita99