MindSpore是一款深度学习系统,可以通过这款软件帮助用户在电脑上开发新的数据分析系统,帮助各种行业提供算法分析,让用户在处理数据的时候获得更好的体验,直接将软件部署就可以使用,可以用于分析情感、可以用于分析图像,可以分析科学数据,可以分析工程数据,结合提供的函数功能就可以在软件上建立数据集分析方案,将分析的数据显示的函数图像上,也可以使用其他统计图展示分析结果,加载需要分析的数据集到软件就可以设置分析规则,支持定义网格,支持加载模型用于推理或迁移学习,支持转换数据集为 MindRecord,支持优化数据处理!
MindSpore软件功能
1、训练看板
训练看板是MindInsight的可视化组件的重要组成部分,而训练看板的标签包含:标量可视化、参数分布图可视化、计算图可视化、数据图可视化、图像可视化和张量可视化等。
标量可视化标量可视化用于展示训练过程中,标量的变化趋势情况。
2、查看溯源和对比看板
MindInsight中的模型溯源、数据溯源和对比看板同训练看板一样属于可视化组件中的重要组成部分,在对训练数据的可视化中,通过对比看板观察不同标量趋势图发现问题,再使用溯源功能定位问题原因,给用户在数据增强和深度神经网络中提供高效调优的能力。
用户从对比分析进入溯源和对比看板。
模型参数选择区,列举了可供查看的模型参数标签。用户可以通过勾选所需的标签,查看相应的模型参数。
3、收集摘要数据
训练过程中的标量,图像,计算图以及模型超参等记录到文件中,通过可视化界面供用户查看。
4、使用mindoptimizer进行超参调优
MindInsight调参功能可以用于搜索超参,基于用户给的调参配置,可以自动搜索参数并且执行模型训练。
MindInsight提供的mindoptimizer调参命令可以根据用户配置,从训练志中提取以往训练记录,再对以往训练记录进行分析,推荐超参,最后自动执行训练脚本
5、能调试(U)
将训练过程中的算子耗时等记录到文件中,通过可视化界面供用户查看分析,帮助用户更高效地调试神经网络能。
6、使用调试器
MindSpore调试器是为图模式训练提供的调试工具,可以用来查看并分析计算图节点的中间结果。
在MindSpore图模式的训练过程中,用户无法从Python层获取到计算图中间节点的结果,使得训练调试变得很困难。使用MindSpore调试器,用户可以:
在MindInsight调试器界面结合计算图,查看图节点的输出结果;
设置监测点,监测训练异常情况(比如张量溢出),在异常发生时追踪错误原因;
查看权重等参数的变化情况。
7、解释模型
当前深度学习模型多为黑盒模型,能表现好但可解释较差。模型解释模块旨在为用户提供对模型决策依据的解释,帮助用户更好地理解模型、信任模型,以及当模型出现错误时有针对地改进模型效果。
在一些影响至关重要的应用场景中,如自动驾驶、金融决策等,由于法律和政策的原因,AI模型如果不具备可解释,是无法真正落地应用的。所以模型的可解释的重要越来越高,受到越来越多的关注。因此,模型解释是提升MindSpore生态应用、用户友好至关重要的一部分。
MindSpore软件特色
使用MindSpore的优势
简单的开发体验
帮助开发者实现网络自动切分,只需串行表达就能实现并行训练,降低门槛,简化开发流程。
灵活的调试模式
具备训练过程静态执行和动态调试能力,开发者通过变更一行代码即可切换模式,快速在线定位问题。
充分发挥硬件潜能
最佳匹配昇腾处理器,最大程度地发挥硬件能力,帮助开发者缩短训练时间,提升推理能。
全场景快速部署
支持云、边缘和手机上的快速部署,实现更好的资源利用和隐私保护,让开发者专注于AI应用的创造。
通用场景教程
面向不同程度开发者提供多种场景下的使用教程,通过细分步骤指导如何使用MindSpore
快速入门
通过一个实际样例实现手写数字的识别,带领大家体验MindSpore基的功能,一般来说,完成整个样例实践会持续20~30分钟。
图像分类
结合CIFAR-10数据集,讲解MindSpore如何处理图像分类任务。
情感分析
构建一个自然语言处理的模型,通过文本分析和推理实现情感分析,完成对文本的情感分类。
识别猫狗APP
在PC上对预训练模型进行重训,在手机终端完成推理和部署,1小时内体验MindSpore端边云全场景开发流程。
MindSpore教程
使用可视化组件MindInsight >收集摘要数据
概述
训练过程中的标量,图像,计算图以及模型超参等记录到文件中,通过可视化界面供用户查看。
作流程
准备训练脚本,并在训练脚本中指定标量,图像,计算图,模型超参等记录到摘要志文件,运行训练脚本。
启动MindInsight,并通过启动参数指定摘要目录文件目录,启动成功后,根据IP和端口访问可视化界面,访问地址为http://127.0.0.1:8080。
在训练过程中,有数据写入,即可在页面中查看可视的数据。
准备训练脚本
当前MindSpore支持将标量,图像,计算图,模型超参等保存到摘要志文件中,并通过可视化界面进行展示。
MindSpore目前支持多种方式将数据记录到摘要志文件中。
方式一:通过SummaryCollector自动收集
在MindSpore中通过Callback机制提供支持快速简易地收集一些常见的,包括计算图,损失值,学习率,参数权重等的Callback,叫做SummaryCollector。
在编写训练脚本时,仅需要实例化SummaryCollector,其并将应用到model.train或者model.eval中,即可自动收集一些常见。SummaryCollector详细的用法英语谚语可以参考API文档中mindspore.train.callback.SummaryCollector。
样例代码如下:
说明
使用summary功能时,建议将model.train()的dataset_sink_mode参数设置为False。请参考文末的注意事项。
方式二:结合Summary算子和SummaryCollector,自定义收集网络中的数据
MindSpore除了提供SummaryCollector能够自动收集一些常见数据,还提供了Summary算子,支持在网络中自定义收集其他的数据,例如每一个卷积层的输入,或在损失函数中的损失值等。
当前支持的Summary算子:
标量摘要:记录标量数据
TensorSummary:记录张量数据
ImageSummary:记录图片数据
直方图摘要:将张量数据转为直方图数据记录
记录方式如下面的步骤所示。
步骤一:在继承nn.Cell的衍生类的construct函数中调用Summary算子来采集图像或标量数据或其他数据。
例如,定义网络时,在网络的construct中记录图像数据;定义损失函数时,在损失函数的construct中记录损失值。
如果要记录动态学习率,可以定义优化器时,在优化器的construct中记录学习率。
样例代码如下:
说明
一种相同的摘要算术子中,给数据设置的名字不能重复,否则数据收集和展示都会出现非预期行为。例如使用两个ScalarSummary算子收集标量数据,给两个标量设置的名字不能是相同的。
步骤二:在训练脚本中,实例化SummaryCollector,加入其应用到model.train。
样例代码如下:
方式三:自定义回调记录数据
MindSpore支持自定义回调,并允许在自定义回调中将数据记录到摘要志文件中,并通过可视化页面进行查看。
下面的伪代码则展示在网络中,开发者可以利用带有原始标签和标签的网络输出,生成重叠矩阵的图片,通过SummaryRecord模块记录到摘要志文件中。 SummaryRecord详细的用法可以参考API文档中mindspore.train.summary.SummaryRecord。
样例代码如下:
除此以外,MindSpore还支持保存训练中其他阶段的计算图,通过将训练脚本中context.set_context的save_graphs选项设置为True,可以记录其他阶段的计算图,其中包括算子融合后的计算图。
在保存的文件中,ms_output_after_hwopt.pb即为算子融合后的计算图,可以使用可视化页面进行进行查看。
方式四:进阶用法,自定义训练循环
如果训练时不是使用MindSpore的提供Model接口,模仿而是Model的train接口自由控制循环的迭代次数。则可以模拟SummaryCollector,使用下面的方式记录摘要算子数据。
下面的例子,将演示如何使用summary算子以及SummaryRecord的add_value接口在自定义训练循环中记录数据
使用技巧:记录梯度除了上述使用方式外,使用摘要数学算子时还有一个记录梯度的技巧。请注意此技巧需要和上述的某种使用方式同时使用。
通过继承最佳优化器类的方法可以插入summary算子读取梯度。样例代码片段如下:
运行MindInsight按照上面的教程完成数据收集后,启动MindInsight,即可查看化收集到的数据。启动MindInsight时,需要通过--summary-base-dir参数指定摘要志文件目录。
其中指定的summary志文件目录可以是一次训练的输出目录,也可以是多次训练输出目录的父目录。
一次训练的输出目录结构如下:
启动命令:
多次训练的输出目录结构如下:
启动命令:
启动成功后,通过浏览器访问http://127.0.0.1:8080地址,即可查看可视化页面。
停止MindInsight命令:
MindSpore注意事项
1、为了控制列出summary文件目录的用时,MindInsight最多支持发现999个summary文件目录。
2、不能同时使用多个SummaryRecord实例(SummaryCollector中使用了SummaryRecord)。
如果在model.train或者model.eval的回调列表中使用两个及以上的SummaryCollector实例,则认为同时使用SummaryRecord,可能导致记录数据失败。
自定义callback中如果使用SummaryRecord,则其不能和SummaryCollector同时使用。
正确的代码:
3、每个摘要摘要文件目录中,应该只放置一次训练的数据。一个摘要摘要目录中如果放置了多次训练的摘要数据,MindInsight在可视化数据时重叠这些训练的摘要数据进行叠加显示,可能会与预期可视化效果不相符。
4、当前SummaryCollector和SummaryRecord不支持U多卡运行的场景。
5、使用摘要功能时,将建议model.train()方法的dataset_sink_mode参数设置为False,以从而step作为collect_freq参数的单位收集数据。当dataset_sink_mode为True时,将以epoch作为collect_freq的单位,建议此时手动设置collect_freq参数。collect_freq参数默认值为10。
6、每个步骤保存的数据量,最大限制为21474837字节。如果超出该限制,则无法记录该步骤的数据,并出现错误。
7、PyNative模式下,SummaryCollector能够正常使用,但不支持记录计算图以及不支持使用Summary算子。
近期热门