使用MindSpore创建网络模型的基本方法

 时间:2026-02-14 16:06:16

1、       首先需要清楚:使用MindSpore定义神经网络需要继承mindspore.nn.Cell。Cell是所有神经网络(如Conv2d-relu-softmax等)的基类。

import mindspore.nn as nn

from mindspore.common.initializer import Normal

2、       导入我们的基础模块后,我们开始定义模型的类,神经网络的各层需要预先在__init__方法中定义,然后通过定义construct方法来完成神经网络的前向构造。按照LeNet的网络结构,定义网络各层如下:

class LeNet5(nn.Cell):

    """

    Lenet网络结构

    """

    def __init__(self, num_class=10, num_channel=1):

        super(LeNet5, self).__init__()

        # 定义所需要的运算

        self.conv1 = nn.Conv2d(num_channel, 6, 5, pad_mode='valid')

        self.conv2 = nn.Conv2d(6, 16, 5, pad_mode='valid')

        self.fc1 = nn.Dense(16 * 5 * 5, 120, weight_init=Normal(0.02))

        self.fc2 = nn.Dense(120, 84, weight_init=Normal(0.02))

        self.fc3 = nn.Dense(84, num_class, weight_init=Normal(0.02))

        self.relu = nn.ReLU()

        self.max_pool2d = nn.MaxPool2d(kernel_size=2, stride=2)

        self.flatten = nn.Flatten()

3、       这里开始,我们将每层串联起来。

    def construct(self, x):

        # 使用定义好的运算构建前向网络

        x = self.conv1(x)

        x = self.relu(x)

        x = self.max_pool2d(x)

        x = self.conv2(x)

        x = self.relu(x)

        x = self.max_pool2d(x)

        x = self.flatten(x)

        x = self.fc1(x)

        x = self.relu(x)

        x = self.fc2(x)

        x = self.relu(x)

        x = self.fc3(x)

        return x

4、       最终,我们将创建出我们需要的基础网络模型。

# 实例化网络

net = LeNet5()

  • salicru(塞里克鲁)ups转维修旁路操作
  • 遇见尊上苏禾怎么解锁
  • 玄中记神赐元兽怎么获得
  • 先驱者支线-猎人温迪戈攻略
  • 如何开启Apple iPod touch的电量百分比
  • 热门搜索
    重阳节手抄报内容大全 一二年级防溺水手抄报 做一个有道德的人手抄报 安全日手抄报 文明手抄报图片 我和我的祖国手抄报图 关于马的手抄报 植树手抄报内容 关于过年的手抄报 廉洁文化手抄报