本文主要是介绍【昇思初学入门】第五天打卡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
网络构建
学习心得
- 定义神经网络时,可以继承nn.Cell类,在__init__方法中进行子Cell的实例化和状态管理,在construct方法中实现Tensor操作
- MindSpore默认情况下是以动态图模式运行,但也支持通过设置set_context手工切换为静态图模式,也jit装饰器开启
案例
import mindspore as ms
from mindspore import nn, ops
ms.set_context(mode=ms.PYNATIVE_MODE) # 动态图模式
ms.set_context(mode=ms.GRAPH_MODE) # 静态图模式class Network(nn.Cell):def __init__(self):super().__init__()# 使用 Flatten 层将输入展平 self.flatten = nn.Flatten()# nn.SequentialCell是一个有序的Cell容器。输入Tensor将按照定义的顺序通过所有Cell。我们可以使用SequentialCell来快速组合构造一个神经网络模型。# 下面的例子包含两个隐藏层和一个输出层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 展平 x = self.flatten(x)# 前向传播logits = self.dense_relu_sequential(x)return logitsX = ops.ones((1, 28, 28), mindspore.float32)
logits = model(X)
pred_probab = nn.Softmax(axis=1)(logits)
print(pred_probab)
y_pred = pred_probab.argmax(1)
print(f"Predicted class: {y_pred}")
结果
[[0.10113075 0.10011511 0.09956549 0.09937003 0.10002089 0.100059810.10049177 0.10075468 0.10002148 0.09847002]]
Predicted class: [0]
这篇关于【昇思初学入门】第五天打卡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!