《昇思25天学习打卡笔记》---第五天|初学入门---网络构建
mindspore提供了常见的神经网络的实现,这是我从网上找到的一部分网络的实现方法:
-
线性回归模型:
- 使用
nn.Dense层可以构建线性模型。
- 使用
-
卷积神经网络 (CNN):
- 可以使用
nn.Conv2d构建卷积层,结合nn.MaxPool2d或nn.AvgPool2d实现池化,以及nn.BatchNorm2d进行批量归一化。 - 示例模型包括:LeNet, AlexNet, VGG, ResNet, Inception, MobileNet 等。
- 可以使用
-
循环神经网络 (RNN):
- 可以使用
nn.RNN,nn.GRU, 和nn.LSTM实现不同类型的循环网络。
- 可以使用
-
长短时记忆网络 (LSTM):
- 使用
nn.LSTM构建。
- 使用
-
序列到序列模型 (Seq2Seq):
- 结合 RNN/LSTM 和编码器-解码器结构。
-
注意力机制模型:
- 可以使用自定义的注意力层或
nn.MultiHeadAttention实现。
- 可以使用自定义的注意力层或
-
Transformer 模型:
- 利用
nn.TransformerEncoderLayer和nn.TransformerDecoderLayer构建。
- 利用
-
生成对抗网络 (GAN):
- 包括生成器和判别器,分别使用不同的神经网络架构。
-
自编码器 (AE) / 卷积自编码器 (CAE):
- 使用编码器和解码器结构,可以基于 CNN 构建。
-
变分自编码器 (VAE):
- 增加了采样层,以实现概率生成模型。
-
图神经网络 (GNN):
- MindSpore 提供了对图数据的支持,可以构建 Graph Convolutional Networks (GCN) 等模型。
-
强化学习 (RL) 模型:
- 可以使用 MindSpore 构建策略网络和价值网络。
为了实现这些模型,通常需要定义一个继承自 nn.Cell 的类,并在其中使用 MindSpore 提供的层和操作。例如,构建一个 ResNet 模型,你可以创建一个类并使用 nn.Conv2d, nn.BatchNorm2d, nn.ReLU, nn.MaxPool2d 等组件。
定义模型的时候,模型集成nn.Cell类,并且在__init__方法中对Cell进行实例化和管理。
nn.SequentialCell中定义3层,每一层的输入参数要和上一层的输出参数相同。
nn.Dense为全连接层,使权重和偏差对输入进行变换。
nn.ReLU为激活函数,帮助神经网络学习
nn.SequentialCell为Cell容器,用于快速构造神经网络模型。
nn.Softmax是用来离散化的函数,将值范围(0,1】
最后放一个代码块,来表示整个网络的构建过程。
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
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐

所有评论(0)