1

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

如果我控制了底层模型的实际层,我会在这些单独的层上插入 dropout 层或设置 L2 系数。KerasLayer但是这些层是使用 TensorFlow Hub方法导入我的网络的。另外,我怀疑底层模型非常复杂。

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

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

4

1 回答 1

4

我“解决”了它

  • 预训练模型的非迁移部分,
  • 然后打开共享层的学习,
  • 引入提前停止,
  • 并将优化器配置为非常慢。

这样,我设法不会过多地损坏转移的图层。无论如何,我仍然想知道这是否是最好的。

于 2019-04-22T09:24:54.917 回答