现在我们已经拥有模型和数据了,现在是时候通过优化数据参数来训练,验证和测试我们的模型了。模型训练是一个迭代过程。在每次迭代(称为epoch)中。此模型猜测输出,计算其猜测中的错误(丢失),并从参数收集错误(如我们在前面的模块中看到的那样),并使用梯度下降方法来优化这些错误参数。
我们需要在数据集和数据集的两个部分中使用代码并构建模型
Ultra -Digital是可以调整的参数,使您可以控制模型优化过程。不同的超参数将影响模型的训练效果和准确性。
我们为培训定义以下超级参数:
一旦设置了超级重新调查器,我们就可以使用优化的迭代培训来训练我们的模型并使其性能最佳。每个迭代迭代称为时代。
每个时期包含以下两个部分:
让我们简单地熟悉训练周期中使用的某些概念。转发以检查优化周期的全IMPL-LABEL。
有了一些培训数据,我们欠的网络可能无法给出正确的答案。损失函数衡量结果和目标值之间的差异程度,这是在训练过程中最小化所需的损失函数。损失,我们使用给定数据样本的输入来预测和将其与真实数据标签值进行比较。
常规损失函数具有以下部分:
我们将训练模型的输出结果传递给NN。交叉条纹模块,该模块归化结果并计算预测误差。
优化是调整每个训练步骤中的模型参数以减少模型误差的过程。优化算法定义了如何执行此过程(在此示例中,我们使用随机梯度降低)。所有优化逻辑都封装在优化器优化对象中。,我们使用SGD优化器;此外,Pytorch中有许多不同的优化器,例如Adam和RMSProp,它们可以更好地应用不同类型的模型和数据。
我们通过注册需要训练并通过学习率的模型参数来初始化优化器。
在训练周期中,优化分为以下三个步骤:
我们定义了Train_loop类,该类遍历了我们的优化代码,然后根据我们的测试数据评估了模型的性能。
初始化损耗函数和优化器,然后将其传递到训练周期train_loop和测试周期test_loop。随意改善跟踪模型的性能的时期数量。
您可能已经注意到该模型一开始不是很好(没关系!)。尝试运行更多的ERA循环或将学习速度调整为更大的数字。我们选择的模型配置可能不是此类问题的最佳配置(不是)。随后的课程将更多地在-Deppth中求解视觉的模型形状问题。
当您对模型的性能感到满意时,您可以使用火炬保存。pytorch模型存储在内部状态词典中学习的参数,称为状态_ dict。这些可以通过TORCH.SAVE方法持久。Save方法:
原始:https://juejin.cn/post/7095207541285584904