《昇思25天学习打卡营第05天|lulul》

网络构建

构建神经网络是学习机器学习不可缺少的技能。
mindspore为我们指定了网络的基类nn.cell我们可以轻松的继承父类来完成网络的自定义。

定义模型类

构建神经网络

class Network(nn.Cell):
    def __init__(self):
        super().__init__()
        self.flatten = nn.Flatten()
        self.dense_relu_sequential = nn.SequentialCell(
            nn.Dense(28*28, 512, weight_init="normal", bias_init="zeros"),
            nn.ReLU(),
            nn.Dense(512, 512, weight_init="normal", bias_init="zeros"),
            nn.ReLU(),
            nn.Dense(512, 10, weight_init="normal", bias_init="zeros")
        )

    def construct(self, x):
        x = self.flatten(x)
        logits = self.dense_relu_sequential(x)
        return logits

在第一次打卡中我们详细的介绍过每一层的含义,并且举例对比过torch框架第一次打卡
完成构建后可以通过实例化,检查网络

model = Network()
print(model)

返回结果:

Network<
  (flatten): Flatten<>
  (dense_relu_sequential): SequentialCell<
    (0): Dense<input_channels=784, output_channels=512, has_bias=True>
    (1): ReLU<>
    (2): Dense<input_channels=512, output_channels=512, has_bias=True>
    (3): ReLU<>
    (4): Dense<input_channels=512, output_channels=10, has_bias=True>
    >
  >

可以通过model.parameters_and_names()获取模型参数名对应的参数详情。

for name, param in model.parameters_and_names():
    print(f"Layer: {name}\nSize: {param.shape}\nValues : {param[:2]} \n")

由于本次打卡任务和第一次打卡重复率较高,详细内容可以参考我的第一次打卡内容第一次打卡

最后了经典合影留念:
在这里插入图片描述

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐