- 博客(21)
- 收藏
- 关注
转载 RWKV解读:在Transformer的时代的新RNN
最开始自然语言使用RNN来建模,它是一种基于循环层的特征提取网络结构,循环层可以将前一个时间步的隐藏状态传递到下一个时间步,从而实现对自然语言的建模。RNN由于存在循环结构(如下图所示),每个时间步的计算都要依赖上一个时间步的隐藏状态,导致计算复杂度较高,而且容易出现梯度消失或梯度爆炸的问题,导致训练效率低下,因此RNN网络扩展性不好。RNN结构Transformer在2017年由谷歌提出,是一种基于自注意力机制的特征提取网络结构,主要用于自然语言处理领域。
2023-09-15 14:38:06
326
原创 MindSpore报错TypeError: Do not support to get attribute from object Namespace*** 以及解决方案
类型中获取参数属性,从下面调用栈可以知道,报错的关键点在于self.options.img_res。类型,在图模式下不支持从<class, 'argparse.Namespace'>硬件环境(Ascend/GPU/CPU): Ascend。进行使用初始化的参数,而不是直接在construct。建议修改方式:从参数类中获取的参数在init。函数中进行初始化然后再在construct。是参数类的对象,其在construct。动态图可以正常运行,静态图下报错。当前报错是TypeError。
2023-08-18 11:43:12
242
1
原创 MindSpore | Unsupported expression ‘Starred‘
通过报错我们可以知道当前静态图不支持'Starred'(中文:星号的意思)所以在construct函数里面出现了星号,根据报错调用栈我们可以知道报错位置出现了*batch_dim。硬件环境(Ascend/GPU/CPU): Ascend。我们需要将星号展开,修改如下。Python版本:3.7。操作系统平台:Linux。静态图静态shape报错。
2023-08-18 11:42:24
131
1
原创 MindSpore | IndexError: (‘Not supported index data type, got ‘, None, ‘ type is ‘, )
根据报错我们可以知道输入的数据类型不对,从本文的标题可以知道我们得到了一个','(逗号),类型是它。这里指明了报错的大概位置是我们可以去输入里面去找问题。我们仔细排查以上代码能够发现ys_pad代码的错误,多了一个逗号。硬件环境(Ascend/GPU/CPU): Ascend。Python版本:3.7。操作系统平台:Linux。
2023-08-18 11:41:27
150
1
原创 MindSpore应用系列:树莓派上运行YOLOv5进行实时目标检测(三)
每一层都有3个anchor,每一anchor对应的(5+分类数)个通道,假设分类数为2,那一共就是7个通道了,这7个通道分别是xywh(4个通道),置信度(1个通道),分类(此处2分类,就是2个通道)物体边框的4个值,x,y,w,h,不过这个x,y并不直接是物体框中心点的坐标,而是它相对于自身所处的格子左上角的偏移,然后再把这个中心点的相对值作用到原图的尺度得到最终的坐标。然后就是宽高,宽高也不是直接预测出物体边框的宽高,而是基于anchor的,预测出来的值会乘上anchor的宽高得出最终的宽高。
2023-08-18 11:40:27
687
1
原创 特性分析helps u further~|昇思MindSpore特性FAQ
对于模型文件本质保存的就是参数和对应的值,可以用其他框架的API将参数读取出来之后,拿到参数的键值对,然后再加载到MindSpore中使用。A6: MindSpore的ckpt和TensorFlow的ckpt格式是不通用的,虽然都是使用Protobuf协议,但是proto的定义是不同的。图形完备的IR: 更多的转换Python灵活语法,包括递归等。要注意类型间的区别。A4: 可以的,MindSpore面向Ascend/GPU/CPU提供统一的API,在算子支持的前提下,网络脚本可以不做修改直接跨平台运行。
2023-08-18 11:39:16
222
1
原创 推理经验各种足!|昇思MindSpore推理FAQ
A5: 在推理代码中通过Ascend310DeviceInfo中的SetPrecisionMode接口进行设置,可选:force_fp16、allow_fp32_to_fp16、must_keep_origin_dtype,allow_mix_precision。默认值为force_fp16,指的就是高性能模式。高精度模式可设置为allow_fp32_to_fp16或must_keep_origin_dtype。A7: 通过ASCEND_GLOBAL_LOG_LEVEL来设置,0:DEBUG级别;
2023-08-18 11:38:35
129
1
原创 分布式并行快问快答来咯!|昇思MindSpore分布式并行FAQ
解决方法:手动kill训练进程,根据报错日志,设置正确的卡号后,重启训练任务。A11: OpenMPI启动时,当前版本的hccl下,创建通信域时,相应的卡需要分配大约300M的device内存,因此每张卡所在的通信域的数量越多,则额外需要的内存越多,因此会有内存不足的问题。A10:这些问题,都是由于在mpirun启动其他主机时,其他主机的环境变量(包括NCCL的网卡选择配置)没有与本机同步,导致了单机多卡正常执行而多机多卡失败的现象。以上指令设置了NCCL在Host侧选择网卡名中带有eth的网卡进行通信。
2023-08-18 11:37:56
526
1
原创 精度or性能调优,so easy!| 昇思MindSpore调优问题FAQ
A1:可能与环境中使用了scipy 1.4系列版本有关,通过pip list | grep scipy命令可查看scipy版本,建议改成MindSpore要求的scipy版本。版本第三方库依赖可以在requirement.txt中查看。A2:在昇腾芯片上进行模型训练时,在batchsize等于AICORE个数或倍数的情况下可以获取更好的训练性能。AICORE个数可通过链接中的命令行进行查询。A3: 可能导致Loss值不收敛或者精度问题的原因很多,推荐参考下面总结,逐一排查问题。
2023-08-18 11:37:17
126
1
原创 框架互换,全程无忧!|昇思MindSpore第三方框架迁移使用FAQ
A2: MindSpore和PyTorch的自定义数据集逻辑是比较类似的,需要用户先定义一个自己的dataset类,该类负责定义__init__,__getitem__,__len__来读取自己的数据集,然后将该类实例化为一个对象(如: dataset/dataset_generator),最后将这个实例化对象传入GeneratorDataset(mindspore用法)/DataLoader(pytorch用法),至此即可以完成自定义数据集加载了。A8: 该问题通常是由于环境变量导入不正确导致的。
2023-08-18 11:36:29
228
1
原创 Ascend环境使用mindspore报Total stream number xxx exceeds the limit of
出现上述报错的原因一般是网络模型规模巨大,使用的流资源的数量超出了Ascend的流资源数量限制。流资源是Ascend平台的一种硬件资源,通过为每个算子分配流,可以控制算子的执行顺序。同一条流上的算子按顺序串行执行,不同流上的算子可以并行执行,每条流上可以分配的算子数量有限,流资源总的数量也是有限的。使用MindSpore r1.6及后续版本可解决此问题 在MindSpore r1.6之前版本,流资源的数量限制是1024条,在r1.6及后续版本,可用的流资源的数量增加到2016条,可解决此问题。
2023-02-21 13:51:45
235
原创 GPU设备算力不足导致计算结果错误[cublasGemmEx failed]
在mindspore-1.6版本之后,mindspore对使用者的GPU显卡进行了算力识别,如使用者的GPU算力小于5.3,会有相应的日志提醒。或者使用CPU设备进行mindspore的使用。或者执行matmul算子时报 cuBLAS Error: cublasGemmEx failed等情况。一般是因为当前使用的GPU设备算力不够引起。当前mindspore限制显卡算力为最低5.3,显卡算力的可在Nivida官网查询。按照官网正确安装mindspore 以及cuda驱动和库文件后,运行。
2023-02-21 13:50:26
388
原创 GPU环境运行MindSpore报错:设卡失败 SetDevice failed
在GPU环境上安装MindSpore,运行后报错提示设卡失败,如"SetDevice for id: 7 failed......"这类错误。日志中给出了设卡样例,提示MindSpore需要的逻辑device id和物理卡号的对应关系。此类错误一般原因:设卡的device id越界,超出了可用GPU卡总数。
2023-02-21 13:49:58
470
原创 [技术干货-功能调试] ms报错";RuntimeError: Net parameters weight shape xxx i
技术干货-功能调试] ms报错"RuntimeError: Net parameters weight shape xxx is different from parameter_dict's xxx.."怎么办。
2023-02-21 13:49:48
122
原创 When &apos;...&apos; by using Fallback feature, an error occurred
定位报错问题的一般流程是: 1、首先找到报错的用户代码行: y = Tensor(self.data, mindspore.float32) 2、然后根据日志报错信息中的关键字,缩小分析问题的范围:Fallback feature 3、报错信息需要Traceback中的报错信息:NameError: data。
2023-02-21 11:47:07
72
原创 MindSpore报错";operation does not support the type kMetaTypeNone";
MindSpore前端语法是Python语法的子集, 撰写模型时需要遵循Python语法。学习掌握一些python语言的特性,对于MindSpore运行机制理解和问题定位很有帮助。
2023-02-21 11:37:09
92
原创 MindSpore报错 sth should be initialized as a Parameter type in ...
Cell网络中的变量需要在__init__中进行定义,并且使用Parameter接口进行初始化。
2023-02-21 11:34:44
103
原创 昇思报错";The function construct need xx positional argument ...";怎么办
MindSpore前端语法是Python语法的子集, 撰写模型时需要遵循Python语法。学习一些python语言的书籍,对于MindSpore运行机制理解和问题定位很有帮助。
2023-02-21 11:30:49
64
原创 MindSpore报错ValueError: For &apos;AvgPool&apos; 输出形状的每一维都要大于零
定位报错问题的步骤:1、找到报错的用户代码行:;2、 根据日志报错信息中的关键字,缩小分析问题的范围* the each element of the output shape must be larger than 0*;3、需要重点关注变量定义、初始化的正确性。
2023-02-21 11:28:45
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人