目录

一、环境配置类 API:定好训练 “舞台”

1.mindspore.set_context

二、数据处理类 API:喂给模型 “合格食材”

1.mindspore.Tensor

三、网络构建类 API:搭好回归 “预测模型”

1.mindspore.nn.Cell

2.mindspore.nn.Flatten

3.mindspore.nn.Dense

4.mindspore.nn.ReLU

四、训练与优化类 API:让模型 “学会预测”

1.mindspore.nn.MSELoss

2.mindspore.nn.RMSProp

3.mindspore.nn.WithLossCell

4.mindspore.nn.TrainOneStepCell

五、评估指标类 API:判断模型 “预测效果”

1.mindspore.train.MAE

2.mindspore.train.MSE

3.mindspore.nn.WithEvalCell

六、总结


一、环境配置类 API:定好训练 “舞台”

        环境配置是实验的第一步,核心是指定 MindSpore 的运行模式和目标设备,确保模型能在昇腾硬件上高效运行。

1.mindspore.set_context

        (1)功能定位:设置运行环境的context

        (2)实验调用示例:context.set_context(mode=context.GRAPH_MODE, device_target='Ascend')

                ①mode=context.GRAPH_MODE:启用图模式(MindSpore 默认),需提前编译计算             图,适合大规模训练,性能更优

                ②device_target='Ascend':指定在昇腾设备上运行,若用 CPU/GPU 可替换                           为'CPU'/'GPU'。

二、数据处理类 API:喂给模型 “合格食材”

1.mindspore.Tensor

        (1)功能定位:张量,即存储多维数组(n-dimensional array)的数据结构。

        (2)实验调用示例:ds_xtrain = Tensor(X_train, ms.float32)

                ①第一个参数为输入数据(如实验中的训练集特征X_train、标签Y_train)

                ② 第二个参数dtype指定数据类型,特征用float32(符合神经网络输入习惯),标签用               int32(里程数为整数)

                ③转换后的数据才能传入 MindSpore 的网络和训练接口

三、网络构建类 API:搭好回归 “预测模型”

1.mindspore.nn.Cell

        (1)功能定位:MindSpore中神经网络的基本构成单元,模型或神经网络层应当继承该基类。

        (2)实验调用示例:class Regression_car(nn.Cell):

                ①所有自定义网络必须继承此类

                ②需重写_init_(定义网络层)和construct定义前向传播逻辑)两个方法,实验中                Regression_car类即基于此实现

2.mindspore.nn.Flatten

        (1)功能定位:沿着从 start_dim 到 end_dim 的维度,对输入Tensor进行展平

        (2)实验调用实例:self.flatten = nn.Flatten()(_init_中定义)

                将多维张量转换为一维(保留批量维度)。

3.mindspore.nn.Dense

        (1)功能定位:全连接层,适用于输入的密集连接层。

        (2)实验调用示例:self.fc1 = nn.Dense(9,64, activation='relu')

                ①核心参数:in_channels(输入维度)、out_channels(输出维度)、activation(激活函数)

                ②实验中:fc1:9 维输入(特征数)→64 维输出,ReLU 激活;

4.mindspore.nn.ReLU

        (1)功能定位:逐元素计算ReLU(Rectified Linear Unit activation function)修正线性单元激活函数。

        (2)实验调用示例:通过nn.Dense的activation='relu'参数使用

                ①实现max(0,x)的非线性变换,解决梯度消失问题

                ②实验中未单独初始化ReLU实例,而是直接在Dense层中指定,简化代码(也可单独初            始化后调用,效果一致)

四、训练与优化类 API:让模型 “学会预测”

1.mindspore.nn.MSELoss

        (1)功能定位:用于计算预测值与标签值之间的均方误差。

        (2)实验调用示例:net_loss = nn.MSELoss()

                ① 计算预测值与真实值的平方差均值,是回归任务的常用损失函数;

                ②实验中用其衡量 “预测里程数” 与 “真实里程数” 的差异,作为模型优化目标。

2.mindspore.nn.RMSProp

        (1)功能定位:均方根传播(RMSProp)算法的实现。

        (2)实验调用示例:net_opt = nn.RMSProp(network.trainable_params(), 0.001)

                ①核心参数:params(待优化的网络参数,通过network.trainable_params()获取)、learning_rate(学习率,实验中设为 0.001);

                ②基于梯度的平方移动平均自适应调整学习率,适合神经网络训练的非平稳目标

3.mindspore.nn.WithLossCell

        (1)功能定位:包含损失函数的Cell。封装 backbone 和 loss_fn 。此Cell接受数据和标签作为输入,并将返回损失函数作为计算结果。

        (2)实验调用示例:

                ① 将 “自定义网络” 与 “损失函数” 封装为一个 Cell;

                ② 输入为 “数据 + 标签”,输出为计算后的损失值,简化后续训练流程的调用

4.mindspore.nn.TrainOneStepCell

        (1)功能定位:训练网络封装类。封装 network 和 optimizer 。构建一个输入'*inputs'的用于训练的Cell。 执行函数 construct 中会构建反向图以更新网络参数。支持不同的并行训练模式。

        (2)实验调用示例:with_loss = nn.WithLossCell(network, net_loss)

                ①将 “WithLossCell” 与 “优化器” 封装,调用一次即可完成 “计算损失→反向传播→更新参数” 的单步训练;

                ②set_train()确保网络处于训练模式(部分层如 Dropout 在训练 / 评估模式下行为不同,实验中无 Dropout 但仍需指定);

                ③实验中循环调用loss = train_step(ds_xtrain,ds_ytrain),实现 300 轮参数更新。

五、评估指标类 API:判断模型 “预测效果”

1.mindspore.train.MAE

        (1)功能定位:计算平均绝对误差MAE(Mean Absolute Error)。

        (2)实验调用示例:Mae=mae.eval()

                ①计算预测值与真实值的绝对差均值,直观反映误差大小;

                ②调用流程:-eval():计算并返回最终指标值;

2.mindspore.train.MSE

        (1)功能定位:测量均方差MSE(Mean Squared Error)。

        (2)实验调用示例:Mse=mse.eval()

                ①计算预测值与真实值的平方差均值,对大误差更敏感;

                ②调用流程与MAE一致,实验中配合MAE综合评估模型(如最终训练集 MSE 约 56,测               试集 MSE 约 63,说明模型未明显过拟合)

3.mindspore.nn.WithEvalCell

        (1)功能定位:封装前向网络和损失函数。 返回用于计算评估指标的损失函数值、前向输出和标签。

        (2)实验调用示例:evalcell=nn.WithEvalCell(network,net_loss)

                ① 将 “自定义网络” 与 “损失函数” 封装为评估用 Cell;

                ② 输入为 “数据 + 标签”,输出为 “损失值、预测值、真实值”;

六、总结

        实验中 MindSpore API 的核心逻辑可概括为:环境配置(set_context)→ 数据转换(Tensor)→ 网络构建(Cell+Dense)→ 训练封装(WithLossCell+TrainOneStepCell)→ 迭代训练(循环调用train_step)→ 评估指标(MAE/MSE+WithEvalCell)

        吃透这些 API,不仅能复现汽车里程数预测实验,更能快速迁移到其他回归任务(如房价预测、销量预测),真正掌握 MindSpore 构建深度学习模型的核心方法。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐