【啃书吧:深度学习与MindSpore实践】第三章 3.4 用MindSpore实现简单神经网络(下)
啃书进度会在目录中标出来。本次目标是完成第三章 3.4节用MindSpore实现简单神经网络的代码部分(P34-P36)。
3.4.2 详细步骤
下面描述使用LeNet网络训练和推理的详细步骤,并给出示例代码。
1. 加载MindSpore模块
使用MindSpore API前需要先导入MindSpore API和辅助模块,如代码3.1所示
2. 导入数据集
使用MindSpore 数据格式API创建Mnist数据集。创建之前需要先下载Mnist数据集,链接:http://yann.lecun.com/exdb/mnist/index.html。 训练和测试数据分别解压到不同的目录下。在我的机器里是这样存的:
3. 定义LeNet网络
核心代码如代码3.2所示
_
4. 设置超参数并创建网络
定义损失函数和优化器。损失函数使用SoftmaxCrossEntroyWithLogit,采用Softmax进行交叉熵计算。选用Momentum优化器,学习率设置为0.1,动量为0.9,核心 代码如代码3.3 所示
5. 训练网络模型
把网络、损失函数和优化器传入模型中,调用train()方法即可开始训练,返回“Epoch time”说明训练过程结束。核心 代码如代码3.4所示
跑通的LeNet网络代码见附件。
另外,MindSpore官网有基于LeNet的手写字识别教程——实现一个图片分类应用,每一步的作用、重要参数、执行效果,包括检验模型的性能等等都写得清清楚楚,而且图文并茂非常直观,强烈建议仔细研读。
<ignore_js_op class="ignore">
03-4 代码.rar2.88 KB