HongguLiu / MesoNet-Pytorch

The Pytorch Implemention of MesoNet
https://github.com/DariusAf/MesoNet
69 stars 18 forks source link

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

Open chaoyu1999 opened 2 years ago

chaoyu1999 commented 2 years ago

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

A1ita99 commented 1 year ago

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

请问这是为何呢?

chaoyu1999 commented 1 year ago

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

请问这是为何呢?

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

A1ita99 commented 1 year ago

请问这是为何呢?

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

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