有没有一种解决方案,只使用一个程序,可以在目标检测中训练和评估模型,并且可以在损失值不再减少时停止训练程序?我希望能够使用一个训练和模型评估同时发生的程序,并且可以像我在imageclassify中所做的EarlyStopping那样停止。对此有什么想法吗?
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 +回调的 * 对象检测 * 的完整代码可以在这里找到。
1条答案
按热度按时间au9on6nz1#
培训和评估可以同时进行,但这将导致overfitting。
根据经典机器学习的概念,我们将数据分为训练数据集和测试数据集。
然后,我们在训练数据集上训练模型,并使用看不见的测试数据进行预测。
在构建模型时,我们通常会分别在训练数据和测试数据上评估模型的性能。
如果模型在训练数据上表现良好,但在测试数据上表现不佳,则称为过拟合。
因此,这两种方法应该被区别对待,而不是分开,这意味着在评估之后将进行哪种培训。
回到你问题的第二部分,提前停止:
Keras有一个名为callbacks的功能,一旦达到所需的精度,您可以停止训练。您可以通过以下方式配置和使用回调:
使用Keras +回调的 * 对象检测 * 的完整代码可以在这里找到。