微调与再培训

时间:2017-07-17 01:29:47

标签: machine-learning tensorflow neural-network tensorflow-gpu

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

我找到了两个与此相关的教程。一个是关于“How to Retrain Inception's Final Layer for New Categories”而另一个是“ Train your own image classifier with Inception in TensorFlow with Fine tuning

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

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

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

2 个答案:

答案 0 :(得分:6)

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

  1. 保持训练有素的模特。模型=特征提取器层+分类层
  2. 删除分类图层
  3. 附加新的分类图层
  4. 端到端地重塑整个模型。
  5. 这允许从特征提取层权重的良好配置开始,从而在短时间内达到最佳值。

    您可以将精细调整视为一种方法来开始一个新的火车,并为您的权重提供一个非常好的初始化方法(尽管您必须初始化新的分类层)。

    相反,当我们讨论模型的再培训时,我们通常会参考以下过程:

    1. 保持模型架构
    2. 更改最后一个分类图层,以产生您要分类的课程数量
    3. 端到端训练模型。
    4. 在这种情况下,您不是从上面的良好起点开始,而是从解决方案空间中的随机点开始。

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

答案 1 :(得分:-1)

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