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

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

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

Docker安装

Q: MindSpore是否支持Nvidia GPU独立显卡+Windows操作系统的个人电脑?
A: 目前MindSpore支持的情况是GPU+Linux与CPU+Windows的组合配置,Windows+GPU的支持还在开发中。 如果希望在GPU+Windows的环境上运行,可以尝试使用WSL+docker的方式,操作思路:

以WSL方式安装起Ubuntu18.04,参考Install Linux on Windows with WSL。

安装支持WSL的Nvidia驱动以及在WSL运行容器的环境部署,参考CUDA on WSL User Guide。

由于CUDA on WSL还是预览特性,注意参考链接里对Windows版本要求的说明,版本不够的需要做升级。

参考Docker镜像,取MindSpore-GPU镜像。如取MindSpore1.0.0版本容器,在WSL Ubuntu18.04中执行docker pull mindspore/mindspore-gpu:1.0.0运行容器:

docker run -it --runtime=nvidia mindspore/mindspore-gpu:1.0.0 /bin/bash

详细步骤可以参考社区提供的实践张小白教你安装Windows10的GPU驱动(CUDA和cuDNN)。 在此感谢社区成员张辉的分享。

卸载

Q: 如何卸载MindSpore?
A: 首先请确定MindSpore的全称,例如gpu版本的MindSpore,可以执行命令pip uninstall mindspore-gpu进行卸载。

环境变量

Q: 一些常用的环境变量设置,在新启动的终端窗口中需要重新设置,容易忘记应该怎么办?
A: 常用的环境变量设置写入到~/.bash_profile 或 ~/.bashrc中,可让环境变量设置在新启动的终端窗口中立即生效。

Q: 使用GPU版本MindSpore时,如何设置DEVICE_ID环境变量?
A: MindSpore GPU模式一般无需设置DEVICE_ID环境变量,MindSpore会根据cuda环境变量CUDA_VISIBLE_DEVICES,自动选择可见的GPU设备。设置CUDA_VISIBLE_DEVICES环境变量后,则DEVICE_ID环境变量代表可见GPU设备的下标:

执行export CUDA_VISIBLE_DEVICES=1,3,5后,DEVICE_ID应当被设置为0,1或2,若设置为3及以上,MindSpore会由于设备ID不合法而运行失败。

Q: 编译应用时报错/usr/bin/ld: warning: libxxx.so, needed by libmindspore.so, not found怎么办?
A: 寻找缺少的动态库文件所在目录,添加该路径到环境变量LD_LIBRARY_PATH中。

Q: 运行应用时出现ModuleNotFoundError: No module named 'te'怎么办?
A: 首先确认环境安装是否正确,te、topi等whl包是否正确安装。如果用户环境中有多个Python版本,如Conda虚拟环境中,需ldd name_of_your_executable_app确认应用所链接的libpython3.so是否与当前Python路径一致,如果不一致需要调整环境变量LD_LIBRARY_PATH顺序,例如

export LD_LIBRARY_PATH=`python -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))"`:$LD_LIBRARY_PATH

将当前的python命令对应程序的运行库路径加入到LD_LIBRARY_PATH的最前面。

Q: 运行应用时出现error while loading shared libraries: libpython3.so: cannot open shared object file: No such file or directory怎么办?
A: 该报错通常出现在装有多个Python版本的环境中,首先确认Python的lib目录是否在环境变量LD_LIBRARY_PATH中,可执行以下命令进行设置:

export LD_LIBRARY_PATH=python -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))":$LD_LIBRARY_PATH
另外如果在Conda虚拟环境中,Python 3.7.6以下版本不含该动态库,可以执行命令升级Conda中Python的版本,如:conda install python=3.7.11。

Q: Ascend AI处理器配套软件包与其他依赖软件已安装,但是执行MindSpore时提示Cannot open shared objectfile: No such file or directory该怎么办?
A: 常见原因有两种: Ascend AI处理器配套软件包或固件/驱动包版本不正确,或没有安装在默认位置且未配置相应的环境变量。

打开Ascend AI处理器配套软件包安装目录,默认/usr/local/Ascend下,各个子目录中的version.info文件,观察其版本号是否与当前使用的MindSpore版本一直,参照安装页面中关于Ascend AI处理器配套软件包版本的描述。如果版本不配套,请更换软件包或MindSpore版本。

检查Ascend AI处理器配套软件包与其他依赖软件是否安装在默认位置,MindSpore会尝试从默认安装位置/usr/local/Ascend自动加载,如果将Ascend软件包安装在自定义位置,请参照安装页面页面的安装指南一栏设置环境变量。如果将其他依赖软件安装在自定义位置,请根据其位置关系设置LD_LIBRARY_PATH环境变量。

安装验证

Q: MindSpore的GPU版本对设备的计算能力有限制吗?
A: 目前MindSpore仅支持计算能力大于5.3的设备。

Q: 个人电脑CPU环境安装MindSpore后验证代码时报错: the pointer[session] is null,具体代码如下,该如何验证是否安装成功呢?

import numpy as np
import mindspore as ms
import mindspore.ops as opsms.set_context(device_target="Ascend")
x = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
y = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
print(ops.add(x,y))

A: 验证安装是否成功,可以参照对应版本的安装指南页面中 验证是否成功安装 段落的描述:

python -c "import mindspore;mindspore.run_check()"

如果输出:

MindSpore version: 版本号
The result of multiplication calculation is correct, MindSpore has been installed successfully!

说明MindSpore安装成功了。

Q: Linux平台下执行用例的时候会报错sh:1:python:not found或者由于链接到了Python2.7的版本中而报错No module named mindspore._extends.remote,该怎么处理?
A: 遇到类似的问题,大多是由于Python的环境问题,可以通过如下方式检查Python环境是否是MindSpore运行时所需要的环境。

在终端窗口中输入python,检查以下进入Python交互环境中的版本信息,如果直接报错则是没有Python的软连接;如果进入的是非Python3.7版本的环境,则当前Python环境不是MindSpore运行所需要的。

执行sudo ln -sf /usr/bin/python3.7.x /usr/bin/python创建Python的软连接,然后再检查执行。

Q: 在脚本中import mindspore之前import了其他三方库,提示如下错误(/{your_path}/libgomp.so.1: cannot allocate memory in static TLS block)该怎么解决?
A: 上述问题较为常见,当前有两种可行的解决方法,可任选其一:

交换import的顺序,先import mindspore再import其他三方库。

执行程序之前先添加环境变量(export LD_PRELOAD=/{your_path}/libgomp.so.1),其中{your_path}是上述报错提示的路径。

Q: mindspore和gmp都已经通过源码编译安装后,在脚本中执行import mindspore,提示如下错误(ImportError: libgmpxx.so: cannot open shared object file: No such file or directory)该怎么解决?
A: 上述问题的原因是在编译安装gmp库的时候没有设置–enable-cxx,正确的gmp编译安装方式如下(假设已经下载了gmp6.1.2安装包):

$cd gmp-6.1.2
$./configure --enable-cxx
$make
$make check
$sudo make install

Q: 运行MindSpore时出现告警 UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero. 应该怎么解决?
A: 上述问题出现在安装了较新版本的numpy(>=1.22.0)版本的ARM python3.9环境上。告警来自numpy而非MindSpore。如果告警影响到了代码的正常调测,可以考虑手动安装较低版本的numpy(<=1.21.2)来规避。

Q: 运行MindSpore时出现报错 AttributeError: module 'six' has no attribute 'ensure_text' 应该怎么解决?
A: 上述问题的原因是环境安装了较新版本的asttokens(>=2.0.6),其依赖的six版本不匹配。更新six版本(>=1.12.0)即可解决。

Q: 运行MindSpore时出现报错 ModuleNotFoundError: No module named 'requests' 应该怎么解决?
A: 上述问题的原因是当前python环境缺少requests包,pip install requests即可解决。


http://www.mrgr.cn/news/57736.html

相关文章:

  • 【视频混剪Demo】FFmpeg的使用【Windows】
  • Mongodb-Plus 轻松上手
  • 项目中使用markdown-editor-django版
  • 一、Python基础语法(有C语言基础速成版)
  • Android OpenGL光照效果
  • Jetpack架构组件_LiveData组件
  • Spring Boot植物健康系统:智慧农业的新趋势
  • com.baomidou.mybatisplus.extension.service.IService用法详解及使用例子
  • 用phython处理当前路径的文件
  • 口含烟贴纸设计公司哪家好?
  • 算法复习核心题目策略总结,以便回顾
  • STM32 C语言基础知识
  • JavaWeb合集22-Apache POI
  • 某游戏的某促销活动,会向玩家推荐一个道具
  • 桂花网蓝牙网关X1000覆盖范围有多少?
  • Java笔试07
  • 1024程序员java纪念
  • 使用Selenium时,如何模拟正常用户行为?
  • 参加了十多个面试,一个offer也没拿到...为什么?
  • Base64编码
  • 真AI遇到招聘管理系统,帮助企业打造新质生产力
  • Vue3:横向滑动导航组件路由跳转保留滚动(条)量
  • HKC双模显示器评测报告 - HKC G27H7Pro
  • 1688API商品详情接口如何获取
  • 解锁PDF权限密码
  • 腾讯地图SDK 手势失效或冲突的解决办法