《昇思 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):
        # 测试循环的实现...
相关推荐
sduwcgg6 分钟前
kaggle配置
人工智能·python·机器学习
DolphinScheduler社区8 分钟前
白鲸开源与亚马逊云科技携手推动AI-Ready数据架构创新
人工智能·科技·开源·aws·白鲸开源·whalestudio
The_cute_cat9 分钟前
25.4.22学习总结
学习
欣然~36 分钟前
借助 OpenCV 和 PyTorch 库,利用卷积神经网络提取图像边缘特征
人工智能·计算机视觉
冰茶_43 分钟前
.NET MAUI 发展历程:从 Xamarin 到现代跨平台应用开发框架
学习·microsoft·微软·c#·.net·xamarin
帅云毅1 小时前
Web3.0的认知补充(去中心化)
笔记·学习·web3·去中心化·区块链
豆豆1 小时前
day32 学习笔记
图像处理·笔记·opencv·学习·计算机视觉
白熊1881 小时前
【计算机视觉】CV实战项目 - 基于YOLOv5的人脸检测与关键点定位系统深度解析
人工智能·yolo·计算机视觉
nenchoumi31191 小时前
VLA 论文精读(十六)FP3: A 3D Foundation Policy for Robotic Manipulation
论文阅读·人工智能·笔记·学习·vln
凉、介1 小时前
PCI 总线学习笔记(五)
android·linux·笔记·学习·pcie·pci