昇思25天学习打卡营第7天|模型训练

今天是参加昇思25天学习打卡营的第7天,今天打卡的课程是“模型训练”,这里做一个简单的分享。

1.简介

今天学习的内容是如何利用前面学习的知识来实现模型训练?

模型训练过程主要包括4个步骤:

  1. 构建数据集。
  2. 定义神经网络模型。
  3. 定义超参、损失函数及优化器。
  4. 输入数据集进行训练与评估。

2.构建数据集

构建数据集主要是通过的dataset来加载数据集,然后创建数据pipeline来组织管理数据。

3.定义神经网络模型

在前面的介绍中已经介绍过关于神经网络模型的定义,主要是基于mindspore.nn提供的类来进行创建。

4.定义超参、损失函数和优化器

4.1 超参

超参是模型训练过程中的控制参数,主要包括:

  • 训练轮次(epoch):训练时遍历数据集的次数。
  • 批次大小(batch size):数据集进行分批读取训练,设定每个批次数据的大小。batch size过小,花费时间多,同时梯度震荡严重,不利于收敛;batch size过大,不同batch的梯度方向没有任何变化,容易陷入局部极小值,因此需要选择合适的batch size,可以有效提高模型精度、全局收敛。
  • 学习率(learning rate):如果学习率偏小,会导致收敛的速度变慢,如果学习率偏大,则可能会导致训练不收敛等不可预测的结果。梯度下降法被广泛应用在最小化模型误差的参数优化算法上。梯度下降法通过多次迭代,并在每一步中最小化损失函数来预估模型的参数。学习率就是在迭代过程中,会控制模型的学习进度。

4.2 损失函数

损失函数(loss function)用于评估模型的预测值(logits)和目标值(targets)之间的误差。常见的损失函数包括用于回归任务的nn.MSELoss(均方误差)和用于分类的nn.NLLLoss(负对数似然)等。 nn.CrossEntropyLoss 结合了nn.LogSoftmaxnn.NLLLoss,可以对logits 进行归一化并计算预测误差。

4.3 优化器

模型优化(Optimization)是在每个训练步骤中调整模型参数以减少模型误差的过程。MindSpore提供多种优化算法的实现,称之为优化器(Optimizer)。优化器内部定义了模型的参数优化过程(即梯度如何更新至模型参数),所有优化逻辑都封装在优化器对象中。

一个优化器的示例:

optimizer = nn.SGD(model.trainable_params(), learning_rate=learning_rate)

5.训练与评估

设置了超参、损失函数和优化器后,我们就可以循环输入数据来训练模型。一次数据集的完整迭代循环称为一轮(epoch)。每轮执行训练时包括两个步骤:

  1. 训练:迭代训练数据集,并尝试收敛到最佳参数。
  2. 验证/测试:迭代测试数据集,以检查模型性能是否提升。

6.小结

本节的模型训练过程是对前面知识的一个综合应用。通过本节的学习,需要掌握数据集的加载和组织、神经网络模型的定义和创建、超参概念及设置的方法、损失函数的设计、优化器的设置、模型训练、模型评估等整个流程。有了本次的基础,后续就可以开始逐步结合实际的问题来进行深入的学习了。

以上是第7天的学习内容,附上今日打卡记录:
在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值