TensorFlow 2 物体检测 API - 我可以/应该使用 K-Fold 交叉验证吗?

4

我有一组约1000张图像的小数据集,正在训练我的模型以便检测8个类别。我已将数据集按照80:20(训练:验证)的比例划分,并希望应用k折交叉验证来充分利用我的数据集。

#1: 我的想法是否正确,或者我有什么误解?在另一篇关于目标检测中K折交叉验证的文章中,有人提到由于我们拥有置信度分数,所以不需要K折交叉验证。然而,我没有看到在“k”个折叠上训练模型和置信度分数之间的关系。

#2: 这是必须手动完成的操作还是TensorFlow 2.x具有添加K折交叉验证的工具?

非常感谢任何澄清!谢谢!

1个回答

2

关于您的问题12

  • (IMO),最好做K-Fold。FYI,将数据集分成8:2比例的方法称为holdout方法,据我所知,这不是K-Fold。当您想要进行K-Fold时,可能需要考虑一些因素,例如类分布边界框分布等。然而,由于您没有提供任何样本数据或代码,这里有一个类似的讨论可能会对您有所帮助。

  • 这必须手动完成。它是一种重新采样过程,用于在有限的数据样本上评估机器学习模型。它不是任何框架集成的东西。


谢谢您的见解。确实,8:2比例不是k折交叉验证。我只是指出我目前正在做什么。关于如何手动执行k折交叉验证,在tf2中进行对象检测,我该怎么做呢?我是否需要生成多个tfrecords,并在每个“n”步/迭代后对它们进行训练?例如,如果我有3个折叠,我是否需要考虑最新的检查点,将模型训练3次? - Looc Yug
请查看此链接的作品:https://www.kaggle.com/davidtong/efficientdet-tpu-train-1-epoch-in-4-min/notebook。 - Innat
您还可以在此处查看如何生成tfrecord文件。 - Innat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接