自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(304)
  • 收藏
  • 关注

原创 叮!请查收昇思人工智能框架峰会2024邀请函

昇思MindSpore人工智能框架峰会,北京国家会议中心,2024年3月21闭门会议,3月22日主论坛和开发者嘉年华,人工智能产学研用专家齐聚,诚邀各位开发者参加~~

2024-03-12 15:31:20 347

转载 RWKV解读:在Transformer的时代的新RNN

最开始自然语言使用RNN来建模,它是一种基于循环层的特征提取网络结构,循环层可以将前一个时间步的隐藏状态传递到下一个时间步,从而实现对自然语言的建模。RNN由于存在循环结构(如下图所示),每个时间步的计算都要依赖上一个时间步的隐藏状态,导致计算复杂度较高,而且容易出现梯度消失或梯度爆炸的问题,导致训练效率低下,因此RNN网络扩展性不好。RNN结构Transformer在2017年由谷歌提出,是一种基于自注意力机制的特征提取网络结构,主要用于自然语言处理领域。

2023-09-15 14:40:38 458

原创 张量运算失败报错RuntimeError:Malloc for kernel output failed, Memory isn’t enough

硬件环境(Ascend/GPU/CPU): GPUMindSpore版本: mindspore=1.10.1执行模式(PyNative/ Graph):PyNativePython版本: Python=3.7.5操作系统平台: linux。

2023-08-18 09:44:55 297

原创 在NPU上的切片操作x=x[:,::-1,:,:]不生效的分析解决

硬件环境(Ascend/GPU/CPU): Ascend&GPUMindSpore版本: 1.9.0执行模式(PyNative/ Graph): 不限Python版本: 3.7.5操作系统平台:Linux。

2023-08-18 09:44:11 171

原创 MindSpore:TopK算子返回的全零的Tensor的解决

硬件环境(Ascend/GPU/CPU): GPUMindSpore版本: mindspore=1.10.1执行模式(PyNative/ Graph):GraphPython版本: Python=3.9.16操作系统平台: Linux Ubuntu 20.04。

2023-08-18 09:43:30 124

原创 MindSpore报refer to Ascend Error Message错误

该报错是mindspore拦截CANN的报错抛出的通用性报错。通常来说可能是环境配置有误,参数有误,但不排除底层架构实现/算子级别的实现导致的。获取报错码后,可在CANN手册里查询对应原因以及解决方案。若查询不到,或者解决方案未能解决,可联系华为工程师寻求算子层面的帮助。有先尝试使用配套兼容版本。如果更换版本后不能解决或者特殊原因不能更换版本,需要提取底层CANN包日志。在配置完成后,重新启动训练,复现问题。并获取日志中的ERROR信息,提取其中报错码和报错信息进行进一步定位和解决。

2023-08-18 09:42:33 219

原创 MindFormers大模型套件llama 训练&微调&评估&推理 一步到位奶爸级教程

基于MindFormers大模型套件中llama readme跑通的训练、评估、微调、推理整理的文档,适合初次接触大模型套件的童鞋入坑学习。

2023-08-18 09:41:35 549

原创 MindFormers:保存权重过于频繁影响训练性能

可在配置文件中修改以下字段,减少保存的频率:callbacks:

2023-08-18 09:38:34 110

原创 损失函数小结MindSporeAI

mindspore.nn.SampledSoftmaxLoss(num_sampled, num_classes, num_true=1, sampled_values=None, remove_accidental_hits=True, seed=0, reduction="none"):在类别数较多的情况下,加速训练。mindspore.nn.FocalLoss(weight=None, gamma=2.0, reduction="mean"):通常用于目标检测,解决了类别不平衡问题。

2023-08-18 09:34:46 112

原创 对比pytorch的优化器实现及使用方法MindSporeAI

MindSpore和pytorch都支持参数分组且使用方法相似,在使用时都是给优化器传入一个字典的列表,每个字典对应一个参数组,其中key为参数名,value为对应的设置值。Mindspore中的混合精度场景下,如果使用FixedLossScaleManager进行溢出检测,且drop_overflow_update为False时,优化器需设置loss_scale的值,且loss_scale值与FixedLossScaleManager的相同,详细使用方法可以参考优化器的混合精度配置。

2023-08-18 09:34:03 677

原创 经典论文复现(Adam),基于MindSpore2.0

在本文中,我们将展示如何使用 MindSpore 2.0 构建自己的 Adam 优化器。Adam 是一种广泛使用的优化器,它结合了 Momentum 和 RMSProp 的优点,通常在许多深度学习任务中表现良好。

2023-08-18 09:33:05 118

原创 数据处理性能调试经验

4. 对后续节点而言,若其前一节点的输出队列为空,则说明前一节点的生产速度慢于当前节点的消费速度,则应增大前一节点的并发数,或减小当前节点的并发数;若其前一节点的输出队列为满,则说明前一节点的生产速度快于当前节点的消费速度,则应减小前一节点的并发数,或增大当前节点的并发数。5. 按照4中的步骤,不断调节各节点并发数,然后开启训练并观察队列使用率情况,直到整个数据管道即没有队列过满,也没有队列过空,都维持在30%-70%的利用率水平,此时数据可以从磁盘中源源不断流入训练网络,不存在瓶颈节点。

2023-08-18 09:32:28 70

原创 MindSpore异常数据检查

在对神经网络进行训练之前,一般需要准备好大量、丰富的可训练数据,使模型得到充分的训练,以提升其准确率、泛化能力。数据的来源是多样的,在准备训练数据时,有可能从本地读取数据,也可能远端服务器拉取数据。当读取到的数据丰富度不够时,可能会使用一些通用的数据增强方法对数据的样式和种类进行扩展,或者根据具体的需要对数据进行预处理计算(如token to id等),以满足神经网络的输入需要。

2023-08-14 10:17:35 77

原创 混合精度调优经验分享(四)

由于昇腾上部分算子不支持fp32(如 Conv,Pooling),或部分算子虽然支持fp32但性能极差,不得不切换成fp16(如MatMul),或者用户脚本中设置了混合精度,这些原因导致其必须走fp16格式,这增大了训练过程中算子溢出的风险,影响网络最终收敛的精度,这里给出算子溢出分析方法。如果算子计算不存在溢出,则算子存在误溢出;如果该溢出是由于LossScale的值过大导致,则该算子的溢出是合理的,如果不是LossScale的值过大引起,则连续发生溢出,则该算子的溢出不合理;

2023-08-11 17:21:02 79

原创 混合精度调优经验分享(三)

而 DynamicLossScaleManager 的lossScale是动态调整的,当网络在连续的一定step 下都没有发生溢出,LossScale 的值就会进行调整,具体的调整方式和连续step的数量可以通过其参数控制,而当检测到网络溢出后,LossScale的值便会下降;MindSpore提供了LossScaleManager类来帮助用户设置混合精度的参数,用户在编写神经网络代码时,可以按照全精度的方式构建,然后仅通过 LossScaleManager 来对网络进行混合精度的处理。

2023-08-11 17:20:24 100

原创 混合精度调优经验分享(二)

在混合精度论文[Mixed Precision Training] 中,作者提出,对于大规模的累加操作,使用FP16会损失更多精度,这一类算子仍要保持FP32的运算,比较常见的算子如:BatchNorm,SoftMax等,这些算子的Redunction 操作仍需要使用FP32格式。为了解决权重无法进行微小更新的问题,在权重更新阶段,我们需要让更新值和被更新值的格式都是FP32。更新值就是梯度,被更新值就是权重,因此,在最后的更新阶段,需要先将FP16梯度转换为FP32格式,然后更新到FP32的权重上。

2023-08-11 17:19:48 108

原创 混合精度调优经验分享(一)

以下是SSD网络激活层梯度的范围,可以看到,整体数值非FP16值域中心对称,绝大多数数值在FP16的表达范围之外,而在FP16表达访问之内的数据,绝大部分又在 FP16的denorm区间(该区间最小相邻数据间隔更大)。这是因为,对于FP16而言,当一个大数和小数相加时,结果的指数位通常和指数位保持一致,如果两数相差2048倍,则较小的数无法用较大的数的指数位表达,较小的数相当于0,所以结果仍为较大的数,该问题同样会导致权重无法更新。混合精度论文参考:[Mixed Precision Training]

2023-08-11 17:19:14 136

原创 Convolutional Neural Networks for Sentence Classification-经典论文复现活动(MindSpore)

任务描述参考任务清单中paperswithcode链接,学习论文中的网络模型,基于MindSpore框架完成对应网络模型的复现。任务要求1. 建议基于MindSpore框架最新版本(Nightly)进行开发,不能使用其他AI框架的接口。最新版本安装请参考:https://www.mindspore.cn/install 选择Nightly版本。2. 任务分为两部分:3. 代码提交至个人github开源仓库,并在paperswithcode网站对应的论文下添加自己的代码实现。

2023-08-11 17:18:04 106

原创 经典论文复现(VAE),基于MindSpore2.0

变分自编码器是一种生成模型,它使用概率编码和解码的方式来生成数据。VAE 的目标是学习输入数据的潜在分布,然后从这个分布中采样新的数据点,这些数据点应该与原始数据具有相似的特性。

2023-08-11 17:16:59 101

原创 静态图跑动态shape场景报错ValueError:The 7th input dims of ‘set_inputs‘ must be the same as network‘s input,but

可以通过迭代打印数据部分看下数据的情况(shape,dtype信息etc.),根据这些信息来设定上图中输入。硬件环境(Ascend/GPU/CPU): Ascend。这是因为第7个输入的shape和网络真实所需要的不符合。功能时,需要在训练之前给动态的部分置为。静态图跑动态shape场景报错。不一致,当我们使用静态图动态。Python版本:3.7。操作系统平台:Linux。的时候的输入和网络输入的。

2023-08-11 17:16:13 37

原创 Ascend单卡可以跑通,分布式报错误:Hccl ops kernel builder is null, may not be inited.

代码单P可以跑通,分布式报以上错误,从报错信息可以看到是因为没有初始化通信服务需要的分布式后端。硬件环境(Ascend/GPU/CPU): Ascend。Python版本:3.7。操作系统平台:Linux。

2023-08-11 17:15:40 99

原创 使用TrainOneStepWithLossScaleCell报错Error:Found inconsistent format!

单P:仅跑前向+反向更新能够正常跑通,结果正确输出。使用TrainOneStepWithLossScaleCell就会报以上错误.排查到context时,发现一个疑问点,我跑的是单P,设置中是数据并行分布式训练。这时我们可以去看下我们设置的context,或者优化器设置。我们首先可以思考是否是梯度聚合或者参数更新的时候出现问题。硬件环境(Ascend/GPU/CPU): Ascend。将这段代码注释掉跑单P,可以顺利跑通。Python版本:3.7。操作系统平台:Linux。

2023-08-11 17:15:08 52

原创 使用自定义数据集运行mindformers的gpt2大模型,报错TypeError: The predict type and infer type is not match, predict typ

硬件环境(Ascend/GPU/CPU): GPUMindSpore版本: 2.0rc1执行模式(PyNative/ Graph): 不限Python版本: 3.7.5操作系统平台: 不限。

2023-08-11 17:07:16 197

原创 MindSpore SPONGE暑期学校火热招生中,分子计算课程等你来

北京大学化学与分子工程学院(名额有限,请大家填写报名表单的同时一定加入课程群组,最终线下参与学员将会在群内或者邮件通知您,线下将提供免费云算力平台供实操体验)。8月21日~25日 每天的8:30~12:00、14:00~17:00、19:00~20:30。

2023-08-10 10:19:31 46

原创 宝典相授,无错在手 |昇思MindSpore报错调试宝典(六):网络构建与训练类报错之资源不足

那么本期我们看看网络构建与训练类报错常见的最后一个问题分类,即资源不足方面的报错,如遇到资源不足方面的报错,如 Out Of Memory、memory isn’t enough 等等资源问题应该如何分析呢。这次的问题是,神经网络训练模型脚本在执行过程中报错退出了,你帮我看看是哪里出了问题?小孢子:好的,我明白啦,在遇到资源不足问题时,还是看具体情况,是其他程序占用、还是程序本身配置问题。MindSpore:不错,总结的很到位,真是触类旁通呢。小孢子:好了,执行没有报错,程序可以继续进行训练了。

2023-06-12 15:56:25 75

原创 轻松调试,让报错无处遁形 |昇思MindSpore报错调试宝典(五):网络构建与训练类报错之算子执行错误

首先我们查看报错信息,①中的异常是由于‘images = Tensor(x_np)’这段代码引起的,主要是命名定义类的错误,‘x_np’没有被赋予定义,同理②和③的错误异常也是由于‘size’、‘images’是没有被定义的,而④中‘output’的报错是由于前面的‘images’没有定义,这样‘output = resize_bicubic_op(images, size)’这段代码就无法执行,从而导致最后的‘print(output.asnumpy())’无法输出结果;详细内容请查看海报~

2023-06-12 15:51:45 91

原创 算子编译没烦恼,Debug线性提升| 昇思MindSpore报错调试宝典(四):网络构建与训练类报错之算子编译错误

首先我们查看报错信息,①中的异常是由于‘images = Tensor(x_np)’这段代码引起的,主要是命名定义类的错误,‘x_np’没有被赋予定义,同理②和③的错误异常也是由于‘size’、‘images’是没有被定义的,而④中的报错则是因为‘images’没有被定义,那么‘output = resize_bicubic_op(images, size)’这段代码就无法执行,那么最终也就无法打印输出结果;小孢子:你好呀,昇思MindSpore,我们又见面了!MindSpore: 当然没问题!

2023-06-12 15:41:03 73

原创 昇思MindSpore报错调试宝典(三):网络构建与训练类报错之语法问题

②查看条件语句的两个分支,out在true分支被赋值为Tensor类型,在false分支被赋值为list类型,条件x > y为变量,因此在return out语句中无法确定out的数据类型,会导致图模式下的编译出现异常。听了前面两期,已经学会如何分析一部分问题了,但有遇到了新问题,写的网络模型训练脚本执行失败,你快帮我分析看看是哪里出了问题?解决办法,知道上面问题的原因是发生在out的数据类型上后,那就将out做出如下修改,小孢子:好棒啊,执行成功了,输出结果: res: [1]

2023-06-12 15:37:59 61

原创 定位调试两手抓,报错真的不可怕 | MindSpore报错调试宝典(二):网络构建与训练类报错之context配置问题

当然啦,这个案例仅仅只解决了系统配置中device_target的问题,那么可以拓展一下,通过昇思MindSpore官网查找API文档[1]发现:mindspore.set_context用于进行环境、调试及执行相关的配置,包含很多配置项,每一个选项都有其依赖的执行后端,如果设置有误可能会执行失败或影响程序的正常执行逻辑。问题定位成功,硬件环境为CPU,说明支持CPU环境,但是代码设定目标设备为GPU,说明脚本设置的运行后端与脚本运行的硬件不匹配,就会出现这样的报错。MindSpore:是的!

2023-06-12 15:29:56 395

原创 昇思 MindSpore 报错调试宝典(一):数据加载与处理类

在getitem中添加了一些打印,再次运行代码,可以看到self.scale初始值为2,每次调用一次getitem都会对self.scale – 1,所以调用2次之后,self.scale就会变为0,因此在第2次执行self.data[index] / self.scale时出现了除零报错。相信大家在使用昇思MindSpore时,会在不同情况下遇到不同类型的报错,为了帮助各位在遇到报错时可以自行定位-调试-解决,发布昇思MindSpore报错调试宝典系列文章,供大家学习参考!小孢子:今天真的受益匪浅啊!

2023-06-12 15:13:15 149

原创 并行报错知多少?|昇思MindSpore报错调试宝典(十):分布式并行报错之并行脚本

通过十期MindSpore的报错案例讲解,相信大家对常见的报错分类都有一定认识了。报错分析首先需要区分问题场景,像常见的语法错误、算子执行错误、常数策略配置错误等,先完成场景识别,就能避免解决问题时绕远路;再从报错日志入手分析,快速识别问题关键信息,对比代码、配置或者查看官方API文档,明白异常产生的原因,能正确的修改代码或者配置,从而高效解决问题,使自己的程序顺利运行。)启动多卡任务失败的案例,主要解决脚本启动方式错误和并行配置启动任务不匹配的问题,欢迎大家一起学习和讨论类似情况。具体案例请参考下图~

2023-05-06 11:05:34 88

原创 解决方案花式炫!|昇思MindSpore报错调试宝典(九):分布式并行报错之未配置策略

然而,没有对策略进行配置也可能出现报错。分布式并行计算中未配置策略报错通常包括但不限于以下几种:1.数据传输和通信之间的网络连接配置错误;2.节点数量和对应硬件配置不匹配;3.节点的内存资源不足;4.参数配置错误等。本期将以未配置Sub算子导致出错为例,欢迎大家一起学习和参考类似情形。报错地图: https://www.hiascend.com/forum/thread-0229108045633055169-1-1.html。上一期给大家讲解了在分布式并行计算下,具体内容请参考如下图片~

2023-04-23 16:17:24 102

原创 抓错快,调试好,解决方案送你手|昇思MindSpore报错调试宝典(八):分布式并行报错之常数策略配置

而这一期我们将探讨因为常数策略配置错误遇到报错时应该如何处理。本期将继续以算子逻辑策略中的脚本为例,对比讲解如何定位并解决此类问题。具体案例讲解请看下图~

2023-04-17 09:17:49 76

原创 算子策略如何配,调试宝典帮你忙 |昇思MindSpore报错调试宝典(七):分布式并行报错之算子逻辑策略配置

前面几期讲解了网络构建与训练类报错中各类错误的定位解决方法,相信大家应该对于此类问题有一些较为深入的认识了。在深度学习中,当数据集和参数量的规模越来越大,训练所需的时间和硬件资源会随之增加,最后会变成制约训练的瓶颈。分布式并行训练,可以降低对内存、计算性能等硬件的需求,是进行训练的重要优化手段。那么接下来几期我们看看分布式并行训练中各类错误应该如何定位解决。本期以算子本身的逻辑导致的策略检查报错为例来讲解下此类问题定位解决的方法。具体案例详情请参考图片内容~

2023-04-07 15:20:34 143 1

原创 宝典相授,无错在手 |昇思MindSpore报错调试宝典(六):网络构建与训练类报错之资源不足

相信如输入异常、算子实现错误之类算子执行问题已经难不倒大家了。那么本期我们看看网络构建与训练类报错常见的最后一个问题分类,即资源不足方面的报错,如遇到资源不足方面的报错,如 Out Of Memory、memory isn’t enough 等等资源问题应该如何分析呢。本期以神经网络训练过程中出现的资源问题为例来讲解下定位解决的方法。详细案例请参考下图~

2023-03-31 11:04:24 78

原创 轻松调试,让报错无处遁形 |昇思MindSpore报错调试宝典(五):网络构建与训练类报错之算子执行错误

该如何定位解决,那么在算子执行的时候也会遇到很多报错,比如输入数据异常、算子实现错误、功能限制、资源限制等问题,遇到这类情形我们正常可以采用类比的分析方法,本期以mindspore.ops.ResizeBicubic算子内部数据没有进行定义进而导致输出异常为例来讲解下如何定位问题并解决报错。上一期讲解了由于输入参数不符合要求、算子功能不支持等。详细内容请查看海报~

2023-03-24 10:46:48 76

原创 昇思MindSpore报错调试宝典(四):网络构建与训练类报错之算子编译错误

本期给大家介绍遇到算子编译错误问题应该如何分析和解决,当算子参数值、类型、shape不满足要求时,或者是算子功能受到限制这些都属于算子编译错误,本期以构建ReduceSum单算子网络时输入超过该算子支持维度为例来分析讲解如何定位与调试。

2023-03-17 15:24:08 94

原创 昇思MindSpore报错调试宝典(三):网络构建与训练类报错之语法问题

相信大家对网络构建与训练类的报错问题分析流程有所了解,那么本期我们看看网络构建与训练问题中的语法问题,它通常包括Python语法错误和MindSpore静态图语法错误,例如控制流语法不支持、Tensor切片错误等。那应该如何进行解决呢,本期以超出函数调用栈限制问题为例来讲解下定位解决的方法。上一期讲解了网络构建与训练类报错问题中。context配置问题该如何定位解决。昇思MindSpore报错案例总结。直接进入主题,请看具体案例~

2023-03-03 14:45:24 87

原创 定位调试两手抓,报错真的不可怕 | MindSpore报错调试宝典(二):网络构建与训练类报错之context配置问题

相信大家对网络构建与训练类的报错问题分析流程有所了解,那么本期我们看看网络构建与训练问题中的语法问题,它通常包括Python语法错误和MindSpore静态图语法错误,例如控制流语法不支持、Tensor切片错误等。那应该如何进行解决呢,本期以超出函数调用栈限制问题为例来讲解下定位解决的方法。上一期讲解了网络构建与训练类报错问题中。context配置问题该如何定位解决。昇思MindSpore报错案例总结。直接进入主题,请看具体案例~

2023-03-03 11:01:15 71

原创 定位调试两手抓,报错真的不可怕 | MindSpore报错调试宝典(二):网络构建与训练类报错之context配置问题

上一期我们讲解了数据加载与处理类报错如何调试解决,今天给大家继续带来网络构建与训练类报错中的context配置问题,本期仍将以案例的形式展开,详细讲解mindspore.set_context算子的使用方法以及配置方法,希望大家在后续使用context算子过程中可以轻松解决相关的报错问题!同时也欢迎大家多多留言,给我们提提建议!废话不多说,请看下图!

2023-02-23 14:20:55 84

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除