python-3.x 如何在目标检测中只使用一个可以训练和评估模型的程序

wgx48brx  于 2023-10-21  发布在  Python
关注(0)|答案(1)|浏览(105)

有没有一种解决方案,只使用一个程序,可以在目标检测中训练和评估模型,并且可以在损失值不再减少时停止训练程序?
我希望能够使用一个训练和模型评估同时发生的程序,并且可以像我在imageclassify中所做的EarlyStopping那样停止。对此有什么想法吗?

au9on6nz

au9on6nz1#

培训和评估可以同时进行,但这将导致overfitting
根据经典机器学习的概念,我们将数据分为训练数据集和测试数据集。
然后,我们在训练数据集上训练模型,并使用看不见的测试数据进行预测。
在构建模型时,我们通常会分别在训练数据和测试数据上评估模型的性能。
如果模型在训练数据上表现良好,但在测试数据上表现不佳,则称为过拟合。
因此,这两种方法应该被区别对待,而不是分开,这意味着在评估之后将进行哪种培训。
回到你问题的第二部分,提前停止
Keras有一个名为callbacks的功能,一旦达到所需的精度,您可以停止训练。您可以通过以下方式配置和使用回调:

my_callbacks = [
    tf.keras.callbacks.EarlyStopping(patience=2),
    tf.keras.callbacks.ModelCheckpoint(filepath='model.{epoch:02d}-{val_loss:.2f}.h5'),
    tf.keras.callbacks.TensorBoard(log_dir='./logs'),
]
model.fit(dataset, epochs=10, callbacks=my_callbacks)

使用Keras +回调的 * 对象检测 * 的完整代码可以在这里找到。

相关问题