gpt4 book ai didi

tensorflow - 使用新图像更新 Tensorflow 对象检测模型

转载 作者:行者123 更新时间:2023-12-02 12:40:59 24 4
gpt4 key购买 nike

我使用 Tensorflow 的对象检测 Api 使用自定义数据集训练了更快的 rcnn 模型。随着时间的推移,我想继续使用其他图像(每周收集)更新模型。目标是优化准确性并随着时间的推移对新图像进行加权。

以下是一些替代方案:

  1. 将图像添加到之前的数据集并训练全新的模型
  2. 将图像添加到之前的数据集并继续训练之前的模型
  3. 仅包含新图像的新数据集并继续训练之前的模型

这是我的想法:选项 1:会更耗时,但所有图像都会被“平等”对待。

选项 2:希望减少额外的训练时间,但一个问题是算法可能会更多地对早期图像进行加权。

选项 3:这似乎是最好的选择。采用原始模型,只专注于训练新东西。

其中一个显然更好吗?各自的优点/缺点是什么?

此外,我想知道是否最好保留一个测试集作为准确性的控制,或者每次创建一个包含较新图像的新测试集。也许将新图像的一部分添加到模型中,将另一部分添加到测试集中,然后将旧的测试集图像返回到模型中(或将它们扔掉)?

最佳答案

考虑一下您的数据集近乎完美的情况。如果您在新图像(每周收集)上运行模型,那么结果(即带有分数的框)将正是您想要从模型中得到的结果,将这些添加到数据集中是毫无意义的,因为模型不会学习任何新内容.

对于不完美的数据集,新图像的结果将显示(一些)错误,这些错误适合进一步训练。但数据集中可能已经存在“坏”图像,因此最好将其删除。这表明必须按某个时间表执行选项 1,以完全消除“不良”图像的影响。

在较短的时间内,如果新图像在各个域类别之间合理平衡(在某种意义上是先前数据集的代表性子集),则选项 3 是合适的。

选项 2 看起来相当安全并且更容易理解。当你说“算法可能会对早期图像进行更多加权”时,如果早期图像“好”,我不明白为什么这是一个问题。但是,我可以看到该域可能会随着时间的推移(进化)而改变,在这种情况下,您可能希望平衡旧图像的权重。据我所知,您可以修改训练数据来执行此问题中讨论的操作:

Class weights for balancing data in TensorFlow Object Detection API

关于tensorflow - 使用新图像更新 Tensorflow 对象检测模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51884713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com