我正在实现一个pytorch神经网络(回归),并希望确定最佳网络拓扑、优化器等。。我使用交叉验证,因为我有x个测量数据库,我想评估我是否可以用x数据库的子集训练神经网络,并将神经网络应用于看不见的数据库。因此,我还介绍了一个测试数据库,我在超参数识别阶段不使用它。 我对如何处理交叉验证中的历元数感到困惑,例如,我的历元数=100。有两种选择:
纪元数是一个需要调整的超参数。在每个历元中,确定所有交叉验证迭代的平均误差。使用所有网络拓扑、优化器等对模型进行训练后,确定平均误差最小的模型,并具有如下参数:
-网络拓扑:1
-优化器:SGD
-纪元数:54
为了计算测试集的性能,在训练和验证数据上使用这些参数(历元数=54)精确地训练模型。然后在测试集上应用和评估它
纪元数不是要调整的超参数。使用所有网络拓扑、优化器等对模型进行训练。对于每个模型,使用误差最小的历元数。对模型进行比较,并可通过以下参数确定最佳模型:
-网络拓扑:1
-优化器:SGD
为了计算测试数据的性能,使用“简单”的培训和验证分割(例如80-20)。利用上述参数和100个历次的训练和验证数据对模型进行训练。最后,根据测试数据对具有多个历元的模型进行评估,得出验证误差最小
哪个选项是正确的还是更好的
时代的数量最好不要微调。 选择2是一个更好的选择。 实际上,如果纪元的#是固定的,则不需要设置验证集。验证集为您提供保存模型的最佳纪元
相关问题 更多 >
编程相关推荐