我应该冻结哪些图层来微调keras上的resnet模型?

时间:2017-11-09 16:17:38

标签: python machine-learning neural-network keras deep-learning

我已经知道如何在vgg上进行微调(微调最后一个转换块)和初始化(微调前两个块)。我想知道建议冻结哪些图层以微调resnet模型。

1 个答案:

答案 0 :(得分:9)

我认为没有最先进的策略,但我可能会与您分享我对这个主题的看法(图层的名称与这些图片类似here

  1. 如果有大量数据真实照片:将所有阶段冻结到第4阶段(留下唯一可训练的第5阶段)。如果你过度适合 - 让第五阶段拥有更少的层次。如果underfit 解冻第四层的一半。请记住 - 网络越深入 - 您拥有的 ImageNet 功能越多。

  2. 如果有一些真实世界的照片:切5号,留下第4阶段的一半可训练并冻结其余部分。如果过度装备 - 保持切割阶段第4阶段,如果适应不足 - 继续延长。

  3. 如果有很多简单的照片数据(例如医疗照片) - 切割第4和第5 - 留下第3个可训练并冻结其余部分。如果过度适合 - 保持切割 - 身体不适 - 请尝试第2点。

  4. 如果有一些简单(少于10K)的照片数据 - 我建议不要使用ResNet50。根据我的经验,它严重影响。我通常实现类似于ResNet18的自定义拓扑。如果您仍想尝试 - 请尝试第3点的说明。