【问题标题】:Training & Validation loss and dataset size训练和验证损失和数据集大小
【发布时间】:2021-01-03 17:54:35
【问题描述】:

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

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

我尝试过使用较大和较小的数字,但我找不到相关性来显示我在其中一个中选择大集合或小集合是否正确(除了处理非常大的数字所需的时间之外)设置)。

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

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

谢谢!

【问题讨论】:

    标签: python machine-learning neural-network pytorch


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-29
      • 2018-04-05
      • 1970-01-01
      • 2020-02-10
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      相关资源
      最近更新 更多