使用TensorFlow和Keras防止过度适应迁移学习

时间:2019-04-19 08:24:28

标签: tensorflow keras transfer-learning tensorflow-hub

我有一个TensorFlow 2模型,该模型带有来自TensorFlow Hub的预训练的Keras层。我想微调此子模型中的权重以适合我的数据集,但是如果我通过设置trainable=Truetraining=True天真地做到这一点,我的模型将严重过拟合。

如果在我的控制下具有基础模型的实际层,则可以插入缺失层或在这些单独的层上设置L2系数。但是,使用TensorFlow Hub KerasLayer方法将图层导入到我的网络。另外,我怀疑基础模型非常复杂。

我想知道解决这类问题的标准做法是什么。

也许可以通过某种方式强制对整个网络进行正则化?我知道,在TensorFlow 1中,有ProximalAdagradOptimizer这样的优化器采用了L2系数。在TensorFlow 2中,唯一的优化器是FTRL,但对于我来说很难使其适用于我的数据集。

1 个答案:

答案 0 :(得分:0)

我“解决”了

  • 预训练模型的未转移部分
  • 然后打开共享层的学习
  • 介绍提前停止,
  • 并将优化器配置为运行缓慢。

这样,我设法不对转移的层造成太大的破坏。无论如何,我仍然想知道这是否是最好的选择。