昇思25天学习打卡营第1天打卡心得

今天学习了一会儿昇思大模型平台的课程,主要是看了基本介绍和快速入门这两个章节。

1.基本介绍

看了基本介绍, 发现平台应用领域很广,包括机器视觉,音频,自然语言处理,模型集成等一系列套件,还支持电磁仿真、分子模拟、量子计算。它还提供了统一的API接口,提供编译器功能,提供可视化调试调优工具,还适配GPU,CPU等多种硬件。这样的一个集大成的平台想必一开始就是以降低大模型平台的使用门槛,统一大模型平台的使用工具而设计开发的。我特别想说的是平台提供了三个层次的API接口:从高到低分别为High-Level Python API、Medium-Level Python API以及Low-Level Python API。按照官方的描述,高阶API提供了更好的封装性,低阶API提供了更好的灵活性,中阶API兼顾灵活与封装。这样的分层设计,为平台模型的定制化提供了更广阔的空间。有独特模型定制需求的工程师可以通过低阶API修改模型,定义张量。像我这样的不关心底层设计的直接用高阶API应该也会比较方便。

2.快速入门

接下来说一下快速入门这个章节。这个章节应用MindSpore的API实现了一个简单的深度学习模型,按照(1)处理数据集(2)网络构建(3)模型训练(4)保存模型(5)加载模型的流程顺序,讲解了怎么使用平台API进行模型训练和处理。

(1)处理数据集

在处理数据集之前,先导入了mindspore库,看上去像个总的封装库,然后导入nn,由后面的说明可知这个nn应该是神经网络相关的模块。然后右导入了数据集中的vision,transforms,和MnistDataset,这些应该就是用来做图像处理的基础数据集了。

然后第二步就是下载数据集,没什么好说的。

第三步和第四步下载和打印数据集,获取数据集列名然后用于数据处理。

第五步和第六步按官方说明是“MindSpore的dataset使用数据处理流水线(Data Processing Pipeline),需指定map、batch、shuffle等操作。这里我们使用map对图像数据及标签进行变换处理,然后将处理好的数据集打包为大小为64的batch”。需要进一步了解学习map、batch、shuffle操作是干什么的,还有就是为什么要打包成大小为64的batch。

第七步和第八步打印数据集的shape和dypte。

至此完成数据集处理。

(2)网络构建

第九步,网络构建,是用于该平台构建神经网络的代码部分,看起来很简单,但是这些参数是干什么的还需要详细学习。根据官方介绍,“mindspore.nn类是构建所有网络的基类,也是网络的基本单元。当用户需要自定义网络时,可以继承nn.Cell类,并重写__init__方法和construct方法。__init__包含所有网络层的定义,construct中包含数据(Tensor)的变换过程”。对我来说这些方法以后只有详细学习神经网络再来进行重写和修改了。

(3)模型训练

第十一步,定义训练函数,输入数据集进行模型训练,主要分三步:1.定义正向计算函数。2.使用value_and_grad通过函数变换获得梯度计算函数。3.定义训练函数,使用set_train设置为训练模式,执行正向计算、反向传播和参数优化。

第十二步,定义测试函数,评估模型性能。

第十三步,调用测试函数,打印信息。我在运行这步的时候系统显示存储空间最后占用来到了10多个G,运行时间也很久,还是用的ascend跑的,里面的运算过程不知道有多复杂。

这个图是我运行了一次测试函数的结果。

(4)保存模型

训练完成后,保存参数,存到.ckpt文件里面。

(5)加载模型

第十五步,加载的是我们刚刚保存的模型,官方说加载后的模型可以直接用于预测推理。

第十六步,用测试数据集跑预测结果,先把训练模式设为False,官方的预测结果和实际结果一致。

这张截图是我自己训练后跑出的结果,由于只训练了一次,所以10个结果有一个有问题。如果多训练几次应该能全对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值