0

我已经为我的研究实现了一个自制的 ZFNet ( prototxt )。在定义了 20k 次迭代后,测试准确率保持在 ~0.001(即 1/1000),测试损失在 ~6.9,训练损失在 ~6.9,这似乎网络在 1k 类中一直在玩猜谜游戏。我已经彻底检查了整个定义并尝试更改一些超参数以开始新的训练,但无济于事,屏幕上显示相同的结果......

谁能给我点灯?提前致谢!


prototxt 中的超参数来自论文 [1]。正如论文中的图 3 所示,所有层的输入和输出似乎都是正确的。

调整是:

  • crop-s 用于训练和测试的输入都设置为,225而不是224#33 中讨论的那样;

  • 、 和的 1 像素零填充conv3,以使 blob 的大小保持一致 [1];conv4conv5

  • 所有可学习层的填充类型从constant[1] 更改为gaussianwith std: 0.01

  • weight_decay:按照@sergeyk 在 PR #33 中的建议从更改为0.00050.00025

[1] Zeiler, M. 和 Fergus, R. 可视化和理解卷积网络,ECCV 2014。

而对于可怜的部分......,我把它贴在这里

4

1 回答 1

1

几点建议:

  1. 将初始化从 更改gaussxavier
  2. 使用"PReLU"激活,而不是"ReLU". 一旦你的网络收敛,你可以微调以删除它们。
  3. 尝试减少base_lr一个数量级(甚至两个数量级)。
于 2016-09-25T11:39:37.543 回答