微调与再培训

Nik*_*ik 3 machine-learning neural-network tensorflow tensorflow-gpu

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

我发现了两个与此相关的教程.一个是关于" 如何为新类别重新构建初始层的最终层 ",另一个是" 使用TensorFlow中的Inception训练您自己的图像分类器并进行微调 ".

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

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

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

nes*_*uno 6

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

  1. 保持训练有素的模特.Model =特征提取器层+分类层
  2. 删除分类图层
  3. 附加新的分类层
  4. 整个模型端到端地重新定位.

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

您可以考虑使用精确调整,就像使用非常好的初始化方法为您的权重启动新火车一样(尽管您必须初始化新的分类层).

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

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

在这种情况下,您不是从上面的良好起点开始,而是从解决方案空间中的随机点开始.

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