神经网络训练中的训练集、验证集以及测试集合

1:在NN训练中我们很常用的是训练集合以及测试集合,在训练集合上训练模型(我个人认为模型就是训练的方法以及对应的参数值,更偏重于参数值吧),训练好之后拿到测试集合上验证模型的泛华(就是该模型可以拿去实战的效果)的能力。


2:但是对于上述情况,举个例子,比如是在训练一个多层网络,我们用类似minFUNC的方法来训练,那么这个优化包会直接根据我们的输入直接迭代出来一个很好地结果了,此时模型就训练好了。但是如果运用SGD这些方法去训练的话,到底迭代多少次算好?有时候可能也不收敛,只是中间过程中的一个参数值是效果最好的,那我们如何知道这个参数值?


3:个人认为有了验证集,真的很适合来使用SGD来训练,在训练过程中,比如训练了一个epoch,那么来把训练好的参数用于验证集上,然后保存在验证集合上的精度,只要改精度满足一定条件,那么训练就可以终止。


4:关于训练集、验证集以及测试集合的选择,这个网上资料很多,不在这里说了。


补充一个伪代码:

for each epoch
    for each training data instance
        propagate error through the network
        adjust the weights
        calculate the accuracy over training data
    for each validation data instance
        calculate the accuracy over the validation data
    if the threshold validation accuracy is met
        exit training
    else
        continue training

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch是一个流行的深度学习框架,它为我们提供了许多构建和训练神经网络的工具和函数。 在PyTorch,我们通常会将我们的数据集划分为三个部分:训练集验证集测试集训练集是我们用来训练模型的数据集。我们利用这些数据来调整模型的权重和参数,以使其能够更好地预测和分类未知的数据。训练集应该包含大量的样本,以确保模型在各种情况下都能进行良好的学习。 验证集是用来评估训练过程模型的表现的数据集。我们可以使用验证集来检测过拟或欠拟等问题。验证集通常是在训练过程使用的一小部分数据,用于评估模型的性能和调整模型的超参数。 测试集是我们用来测试模型性能的数据集。在训练验证过程结束后,我们使用测试集来评估模型对新数据的预测表现。测试集应该是模型过去从未见过的数据,以确保我们对模型的泛化能力有一个准确的评估。 将数据集划分为训练集验证集测试集的目的是为了评估和优化模型的性能。通过使用验证集训练过程选择适的超参数,我们可以减少模型对训练数据的过拟。并且,通过使用独立的测试集来评估模型在真实数据上的表现,我们可以对模型的性能进行客观的评估。 在PyTorch,我们可以使用数据加载器(DataLoader)和数据集(Dataset)等工具来管理和处理这些数据集。这些工具可以帮助我们方便地加载和划分数据集,以供训练验证测试使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值