- 博客(13)
- 收藏
- 关注
原创 MindSpore 运行方式
执行主要有三种方式:单算子、普通函数和网络训练模型。执行单算子执行单个算子,并打印相关结果。代码样例如下:import numpy as npimport mindspore.nn as nnfrom mindspore import context, Tensorcontext.set_context(mode=context.GRAPH_MODE, device_target="GPU")conv = nn.Conv2d(3, 4, 3, bias_init='z
2021-12-12 14:47:04
1122
原创 MindSpore 使用 GradCAM
定义:GradCAM是一个典型及有效的梯度解释器代码如下:import mindspore as msfrom mindspore import Tensorfrom mindspore_xai.explanation import GradCAM# 通常指定最后一层的卷积层grad_cam = GradCAM(net, layer="layer4")# 5 是'boat'类的IDsaliency = grad_cam(boat_image, targets=5)如果输入的
2021-12-12 12:39:49
2497
原创 MindSpore 使用解释器
定义:解释器是一些用来解释AI模型决策的算法,目前 MindSpore XAI 为图片分类场景提供7个解释器算法。解释器输出热力图作为解释,它们代表了每个原图象素的重要性,其中高亮区域为对模型决策起重要作用的部分。热力图覆盖在原图上:解释器主要分为两大类:基于梯度的 及 基于扰动的。基于梯度的解释器依赖反向传播去计算象素的重要性,而基于扰动的解释器则是使用随机扰动原图的方法进行计算。如下图分类:下载教程数据集及模型下载并解压缩用例数据包xai_examples_data.t.
2021-12-12 12:39:01
759
原创 MindSpore使用 MindInsight 可视化
当前提供解释方法及给解释方法进行评估的度量Python API,已提供的解释方法可以通过mindspore_xai.explanation包获取,度量方法可以通过mindspore_xai.benchmark包获取。我们需要准备好待解释的黑盒模型和数据,在脚本中根据需要实例化解释方法及度量方法,调用API用于收集解释结果和解释度量结果。MindSpore XAI还提供mindspore_xai.runner.ImageClassificationRunner运行模块,支持自动化运行所有解释方法和度量方法
2021-12-12 12:38:28
720
原创 MindSpore 使用mindoptimizer进行超参调优
概述机器学习领域一般有两类参数,一类是模型内部参数,依靠训练数据来对模型参数进行调参,还有一类则是模型外部的设置参数,需要人工配置,这类参数被称为“超参数”。不同的超参数会对模型效果有不小的影响,因此超参在训练任务中的重要性较高。传统的方式都需要人工去调试和配置,这种方式消耗时间和精力。MindInsight调参功能可以用于搜索超参,基于用户给的调参配置信息,可以自动搜索参数并且执行模型训练。MindInsight提供的mindoptimizer调参命令可以根据用户配置,从训练日志中提取以往训练记录
2021-12-12 12:37:27
809
原创 MindSpore性能调试设计
为了直观地展现网络模型各维度的性能信息,为我们提供易用、丰富的性能分析功能,帮助我们快速定位网络中性能问题。Profiler架构设计这一章将介绍Profiler的架构设计,第一节从整体Profiler的角度出发介绍其上下文交互关系,第二节将打开Profiler内部,介绍模块层架结构以及模块划分,第三节将介绍模块间的交互调用关系。在整个使用过程中的上下文环境如下图所示:上图所示,Profiler与其他部分的交互包括:在训练脚本中调用MindSpore的Profiler启动收集性能数据的
2021-12-12 12:36:50
193
原创 MindSpore 执行推理模型
通过调用Model的eval接口可以实现推理。为了方便评估模型的好坏,可以在Model接口初始化的时候设置评估指标Metric。Metric是用于评估模型好坏的指标。常见的主要有Accuracy、Fbeta、Precision、Recall和TopKCategoricalAccuracy等,通常情况下,一种模型指标无法全面的评估模型的好坏,一般会结合多个指标共同作用对模型进行评估。常用的内置评估指标:Accuracy(准确率):是一个用于评估分类模型的指标。通俗来说,准确率是指我们的模型预测
2021-12-12 12:34:20
2703
原创 MindSpore--LossScale
概述在混合精度中,会使用float16类型来替代float32类型存储数据,从而达到减少内存和提高计算速度的效果。但是由于float16类型要比float32类型表示的范围小很多,所以当某些参数(比如说梯度)在训练过程中变得很小时,就会发生数据下溢的情况。而LossScale正是为了解决float16类型数据下溢问题的,LossScale的主要思想是在计算loss时,将loss扩大一定的倍数,由于链式法则的存在,梯度也会相应扩大,然后在优化器更新权重时再缩小相应的倍数,从而避免了数据下溢的情况又不影响计
2021-12-12 12:32:28
1239
原创 MindSpore ms_function动静结合
概述ms_function的作用是在PyNative模式下提升执行性能。在MindSpore框架中,PyNative模式(即动态图模式)下,用户可以使用完整的Python语法,更加简单方便地使用MindSpore进行网络调优。与此同时,PyNative模式也会导致一部分性能的损失。ms_function支持在PyNative模式下,让被ms_function修饰的程序以静态图的方式来运行。ms_function会将修饰的程序通过静态编译的方式来生成可执行图,整体下发执行,从而提升该修饰部分的执行性能
2021-12-12 12:31:33
667
原创 MindSpore启动MindInsight
训练性能我们从训练列表中选择指定的训练,点击性能调试,可以查看该次训练的性能数据。如下图所示性能的数据,在这张训练性能数据表中,展示了性能数据总览页面,包含了迭代轨迹(Step Trace)、算子性能、数据准备性能和Timeline等组件的数据总体呈现。各组件展示的数据如下:•迭代轨迹:将训练step划分为几个阶段,统计每个阶段的耗时,按时间线进行展示;总览页展示了迭代轨迹图。••算子性能:统计单算子以及各算子类型的执行时间,进行排序展示;总览页中展示了各算子类型时间
2021-12-10 15:08:31
763
原创 MindSpore优化过程可视化
概述神经网络训练本质上是高维非凸函数的优化过程,一般可以通过梯度下降方法发现最小值点(如图1所示)。而一般的神经网络参数多达几万甚至几十万,较难直接在三维空间展示其优化地形。用户通过本功能,能够基于方向降维和绘制计算,将神经网络训练路径周围的优化空间展示出来。如下图所示展示的是梯度下降的方法:具体使用步骤共分为两步,以LeNet为例,分类任务,数据集为MNIST,1.训练数据收集:在训练过程中,利用SummaryCollector的形式收集多个模型前向网络权重,地形图绘制所需参数(如
2021-12-10 15:07:00
2416
原创 MindSpore性能调试(Ascend)
在Ascend AI处理器上使用MindSpore Profiler进行性能调试。流程准备训练脚本,并在训练脚本中调用性能调试接口,接着运行训练脚本。启动MindInsight,并通过启动参数指定summary-base-dir目录(summary-base-dir是Profiler所创建目录的父目录),例如训练时Profiler创建的文件夹绝对路径为/home/user/code/data,则summary-base-dir设为/home/user/code。启动成功后,根据IP和端口访问可视
2021-12-10 15:05:39
785
原创 MindSpore应用梯度累积算法
概述本教程介绍梯度累积的训练方式,目的是为了解决由于内存不足导致某些大型网络无法训练大Batch_size的问题。传统的训练方式是每次计算得到loss和梯度后,直接用所得梯度对参数进行更新。与传统的训练方式不同,梯度累积引入Mini-batch的概念,首先对每个Mini-batch的数据计算loss和梯度,但不立即更新模型参数,而是先对所得梯度进行累加,然后在指定数量(N)个Mini-batch之后,用累积后的梯度更新网络参数。下次训练前清空过往累积梯度后重新累加,如此往复。最终目的是为了达到跟
2021-12-10 15:04:03
832
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人