4

所以我正在学习如何使用 Tensorflow 为自定义数据集微调 Inception-v3 模型。

我找到了两个与此相关的教程。一个是关于“如何为新类别重新训练 Inception 的最终层”,另一个是“ 在 TensorFlow 中使用 Inception 训练你自己的图像分类器并进行微调 ”。

我在虚拟机上做了第一个再培训教程,只用了 2-3 个小时就完成了。对于相同的花朵数据集,我正在 GPU 上进行第二次微调教程,并且花了大约一整天的时间来执行训练。

再培训和微调有什么区别?

我的印象是,两者都涉及使用预训练的 Inception v3 模型,移除旧的顶层并在花卉照片上训练新的顶层。但我的理解可能是错误的。

4

2 回答 2

8

通常在 ML 文献中,我们将微调过程称为:

  1. 保持训练有素的模型。模型 = 特征提取层 + 分类层
  2. 移除分类层
  3. 附加新的分类层
  4. 端到端重新训练整个模型。

这允许从特征提取层权重的良好配置开始,从而在短时间内达到最佳值。

您可以将微调视为一种使用非常好的权重初始化方法启动新火车的方法(尽管您必须初始化新的分类层)。

相反,当我们谈论模型的再训练时,我们通常指的是以下过程:

  1. 保持模型架构
  2. 更改最后一个分类层以生成要分类的类数量
  3. 端到端训练模型。

在这种情况下,您不会像上面那样从一个好的起点开始,而是从解决方案空间中的一个随机点开始。

这意味着您必须训练模型更长的时间,因为初始解决方案不如预训练模型为您提供的初始解决方案。

于 2017-07-17T06:04:29.030 回答
-1

在重新训练模型的情况下,它比微调花费的时间要少得多,而不是更长的时间。

于 2017-07-17T07:56:26.243 回答