当前位置: 首页 > article >正文

昇思MindSpore进阶教程--安装常见问题(中)

大家好,我是刘明,明志科技创始人,华为昇思MindSpore布道师。
技术上主攻前端开发、鸿蒙开发和AI算法研究。
努力为大家带来持续的技术分享,如果你也喜欢我的文章,就点个关注吧

Conda安装

Q: Ascend硬件平台,在个人的Conda环境中,有时候出现报错RuntimeError: json.exception.parse_error.101 parse error at line 1, column 1: syntax error while parsing value - invalid literal; last read: 'T',该怎么处理?
A: 出现这种类型的报错,大概率是run包更新后个人的Conda环境中没有更新te或topi或hccl工具包,可以将当前Conda环境中的上述几个工具包卸载,然后使用如下命令再重新安装: pip install /usr/local/Ascend/ascend-toolkit/latest/lib64/{te/topi/hccl}-{version}-py3-none-any.whl

Source安装

Q: 编译时bash -p方式和 bash -e方式的区别?
A: MindSpore Serving的编译和运行依赖MindSpore,Serving提供两种编译方式: 一种指定已安装的MindSpore路径,即bash -p {python site-packages}/mindspore/lib,避免编译Serving时再编译MindSpore;另一种,编译Serving时,编译配套的MindSpore,Serving会将-e、-V和-j选项透传给MindSpore。 比如,在Serving目录下,bash -e ascend -V 910 -j32:

首先将会以bash -e ascend -V 910 -j32方式编译third_party/mindspore目录下的MindSpore;

其次,编译脚本将MindSpore编译结果作为Serving的编译依赖。

Q: MindSpore安装: 版本0.6.0-beta + Ascend 910 + Ubuntu_aarch64 + Python3.7.5,手动下载对应版本的whl包,编译并安装gmp6.1.2。其他Python库依赖已经安装完成,执行样例失败,报错显示找不到so文件。
A: libdatatransfer.so动态库是fwkacllib/lib64目录下的,请先在/usr/local目录查找到这个库所在的路径,然后把这个路径加到LD_LIBRARY_PATH环境变量中,确认设置生效后,再执行。

Q: 在Linux中已经安装了交叉编译工具,但是编译命令要怎么写呢?
A: arm64版本编译: bash build.sh -I arm64;arm32版本编译: bash build.sh -I arm32;注意要先设置环境变量,指定Android NDK路径: export ANDROID_NDK=/path/to/android-ndk,编译成功后,在output目录可以找到编译出的包。

Q: 源码编译MindSpore过程时间过长,或时常中断该怎么办?
A: MindSpore通过submodule机制引入第三方依赖包,其中Protobuf依赖包(v3.13.0)下载速度不稳定,建议您提前进行包缓存。

Q: 源码编译时,报错MD5 does not match,应该怎么办?
A: 这种报错可能是在编译的时候由于网络问题导致一些第三方库下载中断,之后重新编译的时候,该文件已经存在但是不完整,在校验MD5的时候失败。解决方法是: 删除.mslib缓存路径中的相关第三方库,然后重新编译。

Q: 环境上安装了Python3.7.5,环境变量设置正确,编译MindSpore时仍然报错Python3 not found,应该怎么办?
A: 可能是因为当前环境上的Python未包含动态库。编译MindSpore需要动态链接Python库,因此需要使用开启动态库编译选项的Python3.7.5,即在源码编译Python时使用./configure --enable-shared命令。

Q: 如何改变第三方依赖库安装路径?
A: 第三方依赖库的包默认安装在build/mindspore/.mslib目录下,可以设置环境变量MSLIBS_CACHE_PATH来改变安装目录,比如 export MSLIBS_CACHE_PATH = ~/.mslib。

Q: 编译失败后,应该清理哪些路径以确保上次失败的编译结果不会影响到下一次编译?
A: 在编译MindSpore时,如果:

  1. 第三方组件下载或编译失败,例如icu4c的patch动作失败返回错误信息Cmake Error at cmake/utils.cmake:301 (message): Failed patch:,则进入编译目录下的build/mindspore/.mslib目录,或由MSLIBS_CACHE_PATH环境变量指定的第三方软件安装目录,并删除其中的对应软件。

  2. 其他阶段编译失败,或打算删除上一次编译结果,完全重新编译时,直接删除build目录即可。

Q: 编译时报错,打开CMakeError.txt提示pthread找不到怎么办?
A: 真正的失败原因会体现在打屏的日志里,CMakeError.txt无参考价值,请寻找打屏日志中的第一个报错。

Q: 编译成功后,运行时报错undefined reference to XXXX或undefined symbol XXXX怎么办?
A: 可能的原因有:

如果问题是git pull更新代码后出现,请删除掉build文件夹,排除前次构建的影响。

如果问题是修改代码后出现,可以使用c++filt XXXX查看该符号的意义,有可能是函数未实现、虚函数未实现、依赖未链接等原因引起。

如果问题发生在Ascend平台,排除上述原因后,很可能是由于MindSpore版本与CANN版本不匹配引起的,版本匹配关系参考安装说明。

Q: 编译完成时告警,SetuptoolsDeprecationWarning: setup.py install is deprecated …怎么办?
A: Python的setuptools组件从58.3.0版本宣布放弃直接调用setup.py的使用方式,因此在安装了较高版本的setuptools的Python环境中源码编译时会遇到类似告警。该告警暂不影响MindSpore的使用,我们将在后续的版本中更换打包方式。 详情可以参照setuptools版本记录

Q: MindSpore要求的配套软件版本与Ubuntu默认版本不一致怎么办?
A: 当前MindSpore只提供版本配套关系,需要您手动进行配套软件的安装升级。(注明: MindSpore要求Python3.7.5和gcc7.3,Ubuntu 16.04默认为Python3.5和gcc5,Ubuntu 18.04默认自带Python3.7.3和gcc7.4)。

Q: 执行用例报错No module named ‘mindpore.version’,应该怎么办?
A: 当有这种报错时,有可能是在创建了和MindSpore安装包相同名字的路径中执行用例,导致Python导入包的时候优先找到了当前目录下,而当前目录没有version.py这个文件。解决方法就是目录重命名或者向上退出一级或者多级目录。


http://www.kler.cn/news/364388.html

相关文章:

  • 【331】基于Springboot的“有光”摄影分享网站系统
  • Spring--4
  • Halcon基础-瓶盖带角度的OCR批量识别
  • 形式架构定义语言(ADL)
  • SpringBoot中yml文件多环境配置
  • 详解Oracle审计(二)
  • Modbus转IEC61850网关iGate-850实现电力系统采集电力仪表
  • Facebook区块链生态系统:去中心化社交平台的未来
  • docker XML详解
  • 深度学习 简易环境安装(不含Anaconda)
  • Zypher Network Layer3 主网上线,“宝藏方舟”活动是亮点
  • React综合指南(一)
  • 微服务的一些基本概念
  • 【Java】ArrayList相关操作及其案例
  • 安全见闻(4)
  • 什么是恶意爬虫,有什么应对措施
  • iOS 18.2开发者预览版 Beta 1版本发布,欧盟允许卸载应用商店
  • 字符串使用方法:
  • AI模型架构如(CNN)、(RNN)(LSTM、GRU)、(如BERT、GPT等)在不同领域中的具体应用
  • 分布式---raft算法
  • 民峰金融智能交易模型的应用与未来趋势
  • 【操作系统】Linux之进程管理一
  • 51单片机快速入门之 步进电机的使用与 ULN2003 2024/10/21
  • 没有AWS账号能不能在手机上使用AWS服务吗?
  • 【MAC OS】rocketmq搭建可视化工具rocketmq-dashboard
  • Openlayers高级交互(7/20):点击某点弹出窗口,自动播放视频