学习目标:
希望经过25天的学习,能初步掌握MindSpore框架训练交通行业垂直Mini小模型
作为智慧交通领域骨灰级产品和方案玩家,虽然没接触过编程,但为了拥抱AI新时代,不得不再次激活大脑N多年没运行的学习模块,开始研究这些“它认识我,我不认识它”的专业词汇了~
今天参加了昇思25天学习打卡营,华为很给力,提供了不少的算力资源,中午提交的申请,下午就给开放了权限。华为培训教程编写的非常精心,从整体框架,到基础知识到进阶,写的明明细细,学习代码引导,即使是我不懂编程的小白,在看完后,基本上也能对MindSpore运行逻辑能有个大概的理解。
第一天,我选择学习了基本介绍和快速入门两个章节,在基本介绍里面,通过全场景尝试学习框架,基本上对MindSpore的总体架构、组件、运行场景、执行流程能了解个清清楚楚;第二章节快速入门,让我这个从未接触过编程的人,利用MindSpore的API快速实操了一把简单的深度学习模型。了解了数据集、网络构建、模型训练以及保存和加载模型的全过程,虽然对这些代码还是看的云山雾绕,但相信,有华为教程的加持,25天后,应该可以从一个菜鸟提升为一个不算太菜的菜鸟~
步骤一: 安装环境和导入
步骤二:处理数据集
步骤三:网络构建
步骤四:模型训练
步骤五:保存和加载模型
模型训练完成后,需要将其参数进行保存。
# Save checkpoint
mindspore.save_checkpoint(model, "model.ckpt")
print("Saved Model to model.ckpt")
加载保存的权重分为两步:
重新实例化模型对象,构造模型。
# Instantiate a random initialized model
model = Network()
# Load checkpoint and load parameter to model
param_dict = mindspore.load_checkpoint("model.ckpt")
param_not_load, _ = mindspore.load_param_into_net(model, param_dict)
print(param_not_load)
加载模型参数,并将其加载至模型上。
model.set_train(False)
for data, label in test_dataset:
pred = model(data)
predicted = pred.argmax(1)
print(f'Predicted: "{predicted[:10]}", Actual: "{label[:10]}"')
break