上一期咱们解说了数据加载与解决类报错如何调试解决,明天给大家持续带来网络构建与训练类报错中的 context 配置问题,本期仍将以案例的模式开展,具体解说 mindspore.set_context 算子的应用办法以及配置办法,心愿大家在后续应用 context 算子过程中能够轻松解决相干的报错问题!同时也欢送大家多多留言,给咱们提提倡议!废话不多说,请看下图!
图中援用 [1]:API 文档【昇思 MindSpore 报错解决地图】常见报错问题和解决方案:https://www.hiascend.com/forum/thread-0229108045633055169-1-1… 往期内容:昇思 MindSpore 报错调试宝典(一):数据加载与解决类文字内容:小孢子:昇思 MindSpore,你好呀!我在网络构建中进行模型训练的时候遇到了这样的报错,能麻烦您帮我瞅瞅是啥问题不?MindSpore:没问题!先让我看看你的代码内容和报错信息~ 小孢子:代码内容是这样的:from mindspore import context
context.set_context(device_target=”GPU”) # ③复制报错信息:RuntimeError: Unsupported device target GPU. This process only supports one of the [‘CPU’].① Please check whether the GPU environment is installed and configured correctly②, and check whether current mindspore wheel package was built with “-e GPU”. For details, please refer to “Device load error message”. 复制 MindSpore:首先剖析你的报错内容,①阐明指标设施 device_target 并不反对 GPU,而是反对 CPU,②须要查看是否装置了 GPU 环境。而代码③‘context.set_context(device_target=”GPU”)’示意设置的 device_target 为 GPU。这类问题在进行 demo 调试或进行模型训练时很常见。这样一来的话再给我看看你的环境设置呗~ 小孢子:零碎环境:Hardware Environment(Ascend/GPU/CPU): CPU
Software Environment:
MindSpore version (source or binary): 2.0.0 & Earlier versions
Python version (e.g., Python 3.7.5): 3.7.6
OS platform and distribution (e.g., Linux Ubuntu 16.04): Ubuntu
GCC/Compiler version (if compiled from source): 复制 MindSpore:那就没错啦!问题定位胜利,硬件环境为 CPU,阐明反对 CPU 环境,然而代码设定指标设施为 GPU,阐明脚本设置的运行后端与脚本运行的硬件不匹配,就会呈现这样的报错。改成 device_target=CPU,那么问题就迎刃而解啦!当然啦,这个案例仅仅只解决了系统配置中 device_target 的问题,那么能够拓展一下,通过昇思 MindSpore 官网查找 API 文档 [1] 发现:mindspore.set_context 用于进行环境、调试及执行相干的配置,蕴含很多配置项,每一个选项都有其依赖的执行后端,如果设置有误可能会执行失败或影响程序的失常执行逻辑。再举个例子:比方想要保留编译过程中的图文件,能够应用 save_graphs= True
选项进行配置,硬件平台 CPU/GPU/Ascend 都实用,具体应用办法能够参考上述咱们提到的 API 文档[1]。小孢子:那我就明确啦!遇到这类问题首先须要理解 set_context 中相干的配置选项,而后找到想要执行的操作并查看后端反对状况,之后再进行相干配置。MindSpore:是的!你说的这类问题咱们对立称之为 context 配置问题。属于网络构建与训练类报错中的一种,其余的报错还有语法错误、算子编译谬误、算子执行谬误以及资源有余这四类。常见谬误类型谬误阐明 context 配置问题零碎进行上下文配置时的谬误语法错误包含 Python 语法错误和 MindSpore 动态图语法错误,例如控制流语法不反对、Tensor 切片谬误等算子编译谬误包含算子参数值 / 类型 /shape 不满足要求、算子性能限度等算子执行谬误包含输出数据异样、算子实现谬误、性能限度、资源限度等资源有余包含设施内存不足、函数调用栈超限、流资源超限等小孢子:明确啦!成年人不做抉择,下期大佬给我具体讲讲麻烦语法错误吧!MindSpore:随时欢迎!