Keras应用CNN模型如何选择?

How to choose Keras Application CNN model?

我是深度学习的初学者,最近尝试 运行 我在 Keras 应用程序的几个模型上的数据。

为了训练,我在训练数据集上使用了每个模型的默认参数。 我想比较每个模型的性能指标,然后选择最好的模型来进一步优化它。

所以,我想知道是否应该根据测试数据集或验证数据集的性能指标来选择 CNN 模型?

谢谢!

如果可以,你应该根据在测试集上的表现来选择。

验证集用于微调每个单独的模型,您在其中 运行 使用略有不同的超参数对模型进行多次迭代,以尝试获得最佳 accuracy/loss验证集。

但是,一旦您为每个模型找到了最佳设置,您必须确保这些模型能够很好地处理未专门用于优化或调整的数据。至此,您已经深入了解并更改了模型以在验证集上获得最佳结果,但它如何在您尚未优化模型的其他数据上执行?这是测试集的用武之地。

This blog 很好地解释了类型之间的区别:

– Training set: A set of examples used for learning, that is to fit the parameters of the classifier.

– Validation set: A set of examples used to tune the parameters of a classifier, for example to choose the number of hidden units in a neural network.

– Test set: A set of examples used only to assess the performance of a fully-specified classifier.

总而言之,您应该首先使用验证集优化所有模型,而不是仅通过查看默认值来决定使用哪个模型。优化所有模型后,运行 通过它们的测试数据并选择性能最佳的模型。

如果您正在寻找合适的优化软件,请查看 Weights & Biases,特别是它们的 'Sweep' 功能,因为这允许您使用不同的超参数训练许多模型并为您提供一个很好的每个参数如何影响 loss/accuracy.

的摘要