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

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

活动地址:https://xihe.mindspore.cn/events/mindspore-training-camp

签名:Sam9029


模型训练

本章节-结合前几张的内容所讲-算是一节综合实践

  • mindscope 框架使用
  • 张量 数据类型
  • 数据集下载与加载
  • 网络构建
  • 函数式自动微分
    以上内容都会在本节内容中实践体现
  • 模型训练的四个步骤如下:

1.构建数据集。

2.定义神经网络模型。

3.定义超参、损失函数及优化器。

4.输入数据集进行训练与评估。

前言

这一节有一个疑问:深度学习中的 模型和深度学习网络 是什么关系?

  • 在实际应用中,当我们谈论"模型"时,可能是在讨论模型的架构、性能、泛化能力或如何将其应用于特定任务。而当我们谈论"深度学习网络"时,我们可能更侧重于网络的结构和工作原理。
  • 总结来说,深度学习网络是实现深度学习模型的一种方式,而模型是深度学习网络学习得到的能够进行预测或分类的具体实例。在深度学习领域,这两个术语经常可以互换使用,尤其是在讨论具体的神经网络结构时。

模型训练的四个步骤

  1. 构建数据集 :数据是深度学习的基础。使用MindSpore的MnistDataset,我们可以方便地加载和处理MNIST数据集。

    python 复制代码
    from mindspore.dataset import MnistDataset
    train_dataset = MnistDataset("MNIST_Data/train", batch_size=64)
    test_dataset = MnistDataset("MNIST_Data/test", batch_size=64)
  2. 定义神经网络模型 :一个简单的神经网络模型通常包含输入层、隐藏层和输出层。在MindSpore中,我们可以通过nn.SequentialCell来构建顺序模型。

    python 复制代码
    class Network(nn.Cell):
        def init(self):
            super().init()
            self.flatten = nn.Flatten()
            self.dense_relu_sequential = nn.SequentialCell(
                nn.Dense(28*28, 512),
                nn.ReLU(),
                nn.Dense(512, 512),
                nn.ReLU(),
                nn.Dense(512, 10)
            )
    
        def construct(self, x):
            x = self.flatten(x)
            x = self.dense_relu_sequential(x)
            return x
  3. 定义超参、损失函数及优化器:超参数如学习率、批次大小和训练轮次对模型训练至关重要。损失函数评估预测值与实际值的差异,而优化器则用于更新模型参数。

    python 复制代码
    epochs = 3
    batch_size = 64
    learning_rate = 0.01
    loss_fn = nn.CrossEntropyLoss()
    optimizer = nn.SGD(model.trainable_params(), learning_rate=learning_rate)
  4. 训练与评估:通过迭代数据集进行训练,并在每轮结束后评估模型性能。

    python 复制代码
    def train_loop(model, dataset):
        # 训练循环的实现...
    def test_loop(model, dataset, loss_fn):
        # 测试循环的实现...
相关推荐
班德先生7 分钟前
以全案策划设计思维破局,让电器科技品牌力落地生根
大数据·人工智能·科技
ujainu9 分钟前
CANN仓库中的AIGC确定性推理工程:昇腾AI软件栈如何在混沌中构建“可预测的智能”
人工智能·aigc
咕泡科技9 分钟前
架构演进:从确定性工作流 (Workflow) 到自主智能体 (LLM Agent)
人工智能·架构
love530love11 分钟前
【高阶编译】Windows 环境下强制编译 Flash Attention:绕过 CUDA 版本不匹配高阶指南
人工智能·windows·python·flash_attn·flash-attn·flash-attention·定制编译
DeniuHe11 分钟前
Pytorch中的众数
人工智能·pytorch·python
我材不敲代码12 分钟前
机器学习入门 04逻辑回归part2——提高逻辑回归模型的召回率
人工智能·机器学习·逻辑回归
池央12 分钟前
CANN 算子合规性与迁移性:自定义算子设计中的安全边界与属性兼容性
人工智能·自动化·信号处理
新缸中之脑12 分钟前
开发AI代理必备的8个Python 库
开发语言·人工智能·python
小白|12 分钟前
高效AI推理引擎实战:基于CANN的自定义算子开发与性能调优
人工智能·架构
彬鸿科技12 分钟前
bhSDR Studio/Matlab入门指南(五):8通道PSK图传收发实验界面全解析
人工智能·软件无线电·sdr