Caffe微调与从头开始

时间:2016-02-04 08:47:12

标签: machine-learning computer-vision caffe

上下文:假设我已在datasetA上培训了CNN,并且我已获得caffeModelA

当前情况:新图片到达,因此我可以构建新数据集datasetB

问题:这两种情况会导致相同的caffemodel吗?

  1. 合并datasetAdatasetB并从头开始训练网。
  2. 仅对caffeModelA进行培训,对现有datasetB执行一些微调(如下所述:http://caffe.berkeleyvision.org/gathered/examples/finetune_flickr_style.html
  3. 这似乎是一个愚蠢的问题,但我不确定它的答案。这非常重要,因为如果这两个近似值导致相同的结果,我可以通过执行2来节省时间。

    注意:请记住这是同样的问题,所以不需要在这里更改架构,我只是计划在培训中添加新图像。

1 个答案:

答案 0 :(得分:3)

在闪烁式示例中,情况更为通用。他们使用来自为不同分类任务训练的模型的第一层的权重,并将其用于新任务,仅训练新的最后一层并稍微微调第一层(通过为那些预训练层设置低学习率) )。您的情况类似但更具体,您希望使用预训练模型来训练完全相同任务的确切架构,但需要扩展您的数据。

如果您的问题是选项1是否会产生完全相同的模型(所有结果权重相等)作为选项2.那么不,很可能不会。

在选项2中,网络经过dataset A的迭代,然后再次dataset B再次dataset A的迭代......依此类推(假设两者都连在一起)。 在选项1中,将对dataset A上的某些迭代/时期进行网络训练,然后继续仅在dataset B上继续学习迭代/时期,就是这样。因此,解算器将在两个选项中看到不同的渐变序列,从而产生两种不同的模型。这是从严格的理论角度出发的。

如果从实际角度提出问题,这两个选项最终可能会得到非常相似的模型。你在dataset A上训练了多少 epochs (不是迭代)?说N epochs ,那么你可以安全地使用选项2.并在dataset B上进一步训练现有模型,获得相同数量的时期和相同的学习率批量大小。