训练和验证损失和数据集大小

时间:2021-01-03 17:54:35

标签: python machine-learning neural-network pytorch

我是神经网络的新手,我正在做一个必须定义神经网络并对其进行训练的项目。我定义了 2 个隐藏层的 NN,有 17 个输入和 17 个输出。神经网络有 21 个输入和 3 个输出。

我有一个 1000 万个标签的数据集,以及一个另外 1000 万个样本的数据集。我的第一个问题是关于验证集和训练集的大小。我正在使用 PyTorch 和批次,而且据我所知,批次不应更大。但是我不知道集合的大小应该是多少。

我尝试过较大和较小的数字,但我找不到相关性表明我是否正确地选择了其中一个大集合或小集合(除了需要处理非常大的数字的时间)设置)。

我的第二个问题是关于训练和验证损失,我读过它可以告诉我我是过度拟合还是欠拟合,这取决于它是更大还是更小。完美应该是相同的值,这也取决于时代。但我无法调整网络参数,如批量大小、学习率或选择我应该在训练和验证中使用多少数据。如果集的80%(800万),完成它需要几个小时,而且我担心如果我选择较小的数据集,它不会学习。

如果有什么不好解释的,请随时向我询问更多信息。正如我所说,数据是给定的,我只需要定义网络并使用 PyTorch 进行训练即可。

谢谢!

1 个答案:

答案 0 :(得分:0)

对于您关于批量大小的第一个问题,对于它应该具有什么值没有固定规则。你必须尝试看看哪个效果最好。当您的 NN 开始表现不佳时,不要超过或低于该批大小的值。这里没有硬性规定。

对于您的第二个问题,首先,具有相同的训练和验证损失并不意味着您的 NN 表现良好,这只是表明其在测试集上的表现足够好(如果上述情况) ,但这在很大程度上取决于许多其他因素,例如您的训练和测试集分布。

使用 NN,您需要尝试尽可能多的事情。尝试不同的参数值、训练和验证分割大小等。你不能只是假设它不起作用。